diff --git a/AGENTS.md b/AGENTS.md index 2e94a5e..1617178 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Notes for agents -- This repository runs Nintendo Switch games natively on Apple platforms: the game's own code runs, rewritten only where Apple's kernel requires it. Fifty-nine games are playable on the iPhone: Super Mario Bros. Wonder (update 1.2.1, profile `010015100B514000`), Fire Emblem Engage (update 2.0.0, `0100A6301214E000`), Metroid Dread (update 2.1.0, `010093801237C000`), 13 Sentinels: Aegis Rim (update 1.10, `01003FC01670C000`), Super Mario 3D World + Bowser's Fury (update 1.2.2, `010028600EBDA000`), The Legend of Zelda: Breath of the Wild (update 1.9.0, SDK 20, `01007EF00011E000`), The Legend of Zelda: Link's Awakening (update 1.1.0, SDK 8, `01006BB00C6F0000`) Super Mario Odyssey (update 1.4.1, SDK 7, `0100000000010000`), Hades (update 1.0.38233, SDK 9, `0100535012974000`), Hyrule Warriors: Age of Calamity (update 1.3.0, SDK 9.6, `01002B00111A2000`), Fire Emblem: Three Houses (update 1.2.0, SDK 6.5, `010055D009F78000`), Super Mario Galaxy (update 1.3.1, SDK 18, `010099C022B96000`) The Legend of Zelda: Tears of the Kingdom (update 1.4.3, SDK 20, `0100F2C0115B6000`) Monster Hunter Rise (update 16.0.2, SDK 11.4.3, `0100B04011742000`), Ace Attorney Investigations Collection (update 1.0.0.2, SDK 17.5.3, `010005501E68C000`), Hades II (base game, SDK 19.3.9, `0100A00019DE0000`), Unicorn Overlord (update 1.05, SDK 16.2.4, `010069401ADB8000`), Rhythm Heaven Groove (base game 1.0.0, SDK 21.4.0, `0100D9F01D474000`), Octopath Traveler 0 (update 1.0.5, SDK 19.3.13, `01005270232F2000`), Pokémon Legends: Z-A (update 2.0.2, SDK 19.3.11, `0100F43008C44000`), Cuphead (update 1.3.7, SDK 5.5.0, `0100A5C00D162000`), Super Mario Galaxy 2 (update 1.4.0, SDK 18.3.5, `0100FD8022DAA000`), FINAL FANTASY TACTICS - The Ivalice Chronicles (update 1.4.0, SDK 19.3.9, `010038B015560000`), Absolum (update 1.1.1, SDK 18.3.2, `0100A83022A22000`), Captain Toad: Treasure Tracker (update 1.4.2, SDK 8.2.0, `01009BF0072D4000`) and Brain Memory Training Academy (base game 1.0.0, SDK 16.2.4, `0100F5D01DA3A000`), The Great Ace Attorney Chronicles (base game 1.0.0, SDK 10.4.1, `010036E00FB20000`), STEINS;GATE RE:BOOT (update 1.0.3, SDK 20.5.17, `01008BC024FDE000`), Big Brain Academy: Brain vs. Brain (update 1.2.0, SDK 11.4.3, `0100620012D6E000`), Patrick's Parabox (update 1.0.1, SDK 13.3.7, `0100E44016C22000`), Celeste (update 1.4.1.1, SDK 15.3.2, `01002B30028F6000`), DRAGON QUEST XI S: Echoes of an Elusive Age – Definitive Edition (update 1.0.4, SDK 7.3.2, `01006C300E9F0000`), Monster Train 2 (update 1.1.1, SDK 18.3.5, `010051701FB46000`), Raging Loop (base game 1.0.0, SDK 7.3.2, `010020400E1C2000`), DARK SOULS: REMASTERED (update 1.0.3, SDK 4.5.0, `01004AB00A260000`), Paper Mario: The Thousand-Year Door (update 1.0.1, SDK 15.3.2, `0100ECD018EBE000`), Hollow Knight: Silksong (update 1.0.30000, SDK 20.5.8, `010013C00E930000`), Catherine: Full Body (update 1.0.1a, SDK 8.2.1, `0100BF00112C0000`), Digimon Story Cyber Sleuth: Complete Edition (update 1.0.3, SDK 6.4.0, `010014E00DB56000`), Animal Crossing: New Horizons (update 3.0.3, SDK 20.5.4, `01006F8002326000`), DRAGON QUEST VII Reimagined (update 1.2.0, SDK 19.3.1, `0100A9D01C446000`), FINAL FANTASY RESONANCE (update 1.0.1, SDK 20.5.17, `0100606026F12000`), Luigi's Mansion 3 (update 1.4.0, SDK 7.3.2, `0100DCA0064A6000`), AI: THE SOMNIUM FILES (update 1.0.1, SDK 6.4.2, `010089B00D09C000`), ANIMAL WELL (update 1.0.10, SDK 20.5.7, `010020D01AD24000`), AI: THE SOMNIUM FILES - nirvanA Initiative (update 1.0.2, SDK 13.3.5, `0100713016CCC000`), Mario Kart 8 Deluxe (update 4.0.0, SDK 4.4.0, `0100152000022000`), Balatro (update 1.1.3, SDK 18.3.2, `0100CD801CE5E000`), ROMANCE OF THE THREE KINGDOMS 8 REMAKE (update 1.1.3, SDK 17.5.3, `0100C2A01A730000`), Taiko Risshiden V DX (update 1.1.1, SDK 12.3.3, `0100346017304000`), Super Smash Bros. Ultimate (update 13.0.5, SDK 8.2.1, `01006A800016E000`), Bayonetta 2 (update 1.2, SDK 3.6.0, `01007960049A0000`), Bayonetta 3 (update 1.2.0, SDK 13.3.2, `01004A4010FEA000`), Advance Wars 1+2: Re-Boot Camp (base game 1.0.0, SDK 10.4.1, `0100300012F2A000`) Pokémon Sword (update 1.3.2, SDK 7.3.2, `0100ABF008968000`), Pikmin 4 (update 1.1.1, SDK 10.4.8, `0100B7C00933A000`), Stardew Valley (update 1.6.15.13, SDK 20.5.27, `0100E65002BB8000`), BALL x PIT (update 1.293, SDK 20.5.19, `010086A022444000`) and Mario vs. Donkey Kong (update 1.0.1, SDK 15.3.0, `0100B99019412000`). Hades renders with Vulkan, which the host implements on Metal (`dm/gfx/vk/hle_vk.m`; `main` imports Vulkan, not NVN). Age of Calamity is Koei Tecmo's KTGL engine: files in RDB archives, shaders as GLSLC outputs (`shader_split.py` `idrk_shaders`). Three Houses is KTGL too; 9 of its shaders exist only as compiles of the game's own GLSLC at run time, captured once on the Mac (its `main` holds GLSL sources and imports `glslcCompile`). Breath of the Wild and Tears of the Kingdom run at 60 fps through a frame step the host decides in whole vsyncs (`FRAME_STEP` in their profiles' `patches.py`, `nvn_fstep.h`, profile keys `fps_target` and `frame_step`); Tears of the Kingdom has a 5 GB guest layout, and its `sdk` build (Breath of the Wild's) has the SDK's address-region node area cut (`sdk_patches.py`): without it the resource heaps ran out of alias region at the first descent from the Great Sky Island and the game played its memory-shortage Blood Moon, which put Link back at the start (its log shows `MSF`). Monster Hunter Rise is Capcom's RE Engine: files in KPKA PAK archives (`shader_split.py` `kpka_jobs`, shaders in SDF files), the base game an XCI, its GPU heap a 64 GB sparse virtual pool (`hle_nvn.c` `vpool_*`, a 4 KB page table the replay reads textures through); it runs at 60 fps (30 on the Switch). Super Mario Galaxy is the Wii game on NERD's Hagi layer (PowerPC code recompiled into `main`), renders with Vulkan, and generates its shaders at run time, which the NSP script captures on the Mac (no SPIR-V file in its RomFS); its pointer is the touch screen in handheld mode (profile key `op_mode`). Ace Attorney Investigations Collection is Unity 2022 IL2CPP: its shaders keep their parameters as blob entries of their own (`shader_split.py` `unity_code_blobs`), and its C# file API goes through the SDK's C library, whose path checks the host answers (`hle_fs.c` `IsPathMounted` and the length limits). Hades II, unlike Hades, renders with NVN; its shaders bind textures at fixed slots up to 34 (slot 34's handle lies in the driver's image table, `dmsh_build.py`), and the two long lines through Melinoë while the staff's Omega attack charges are the game's own aim lines, not a rendering bug. Unicorn Overlord is Vanillaware's engine like 13 Sentinels (shaders compiled into `main`); both need the profile key `alloc_big_align`, which aligns large allocations to 64 KB so the ring heaps the engine cuts from a memory pool fit. Rhythm Heaven Groove is Nintendo's own 2D engine on SDK 21, the newest SDK so far (its DSP command list has no magic, `hle_audren.c`); it plays handheld with Boost (profile keys `op_mode handheld`, `perf_mode boost`), which skips its TV latency calibration and keeps its 1920x1080 draw size. Octopath Traveler 0 is Unreal Engine 5: everything in one pak with an AES-encrypted index whose key is found in `main` (`dm/gfx/tools/uepak.py`), its shaders Oodle-compressed in the pak's shader code archives and decoded once on the Mac by the game's own Oodle (any game with Unreal paks, `DM_OODLE_JOB`), its allocator replaced by the host's because Unreal's reserves 37 GB of address space (a cut in its `patches.py`, `hle_uemalloc.c`), its address region capped by the game's own argument (profile key `game_args`), and the particle shaders that pick a texture slot at run time bound by slot (profile key `tex_dyn_slots`); it runs at 60 fps (30 on the Switch) because the host writes Unreal's `t.MaxFPS` and `rhi.SyncInterval` in game memory (`hle_fpslock.c`, profile key `fps_target`). Pokémon Legends: Z-A is Game Freak's Trinity engine: everything in the packs of `arc/data.trpfs` (FlatBuffers, every file Oodle-compressed), which the shader split decodes with the game's own decoder in the Mac host's tool mode (`shader_split.py` `trinity_shaders`, `hle_oodle.c` `DM_OODLE_SERVE`); its 12 GB StandardAllocator is cut to 4 GB to fit a 5 GB guest layout, and the host refuses maps past the pool as Horizon does (profile key `mem_map_limit`); its characters are skinned with transform feedback (`dmsh_build.py` `vs_tf`, `nvn_mtl.m` `tf_draw`), and its occlusion queries, which decide how characters are animated, need the draw's base instance in the driver segment (c0 + 0x644, `encode_args`). Cuphead is Unity 2017.4 IL2CPP on SDK 5.5.0: Unity 2017's serialized and Shader formats are read by `unityfs.py` / `shader_split.py`, its rewritten modules (80 MB) need the profile key `mem_used` above the default 64 MB, or its `SetHeapSize` fails, and its NVN pool allocator breaks on a zero-size block, so the host never reports a ZCull storage size of 0 (`hle_nvn.c` `zcull_size`). Super Mario Galaxy 2 is Galaxy's Hagi layer with Galaxy's `sdk` build; its movie player reserves 384 MB of virtual address memory, which fits only because a rewriter cut on that `sdk` build shrinks the SDK's address-region node area to 62 MB (`sdk_patches.py`; the profile's alias region is 512 MB). FINAL FANTASY TACTICS - The Ivalice Chronicles is Square Enix's engine on NVN: its shaders are GLSLC outputs in loose technique files, which `shader_split.py` reads in any RomFS file no other reader takes; its UI textures are written by the CPU into uncached pools (profile keys `tex_flush_upload`, `tex_dirty_upload`); and two job-pool workers share one auto-clear event, so a build cut makes a worker woken in another's place pass the wake on (its `patches.py`). Absolum is FNA (XNA 4 in C#) on .NET NativeAOT with SDL3 and FNA3D's NVN driver: its `main` starts its text with 1.7 MB of data the rewriter leaves alone (`nso_code.py`), its shaders are GLSLC outputs in `shaders.nx.bin`, its picture is flipped by a viewport swizzle the host applies, and everything lives in virtual address memory: malloc's 40 GB StandardAllocator is cut to 2.5 GB and the SDK's node area and large-region alignment are cut (its `patches.py` and `sdk_patches.py`), and the .NET GC's region range is 1.5 GB (profile key `game_env`), to fit a 5 GB guest layout. Captain Toad: Treasure Tracker is Nintendo EPD Tokyo's engine (the `al` library over sead / agl, as 3D World and Odyssey) and needed no host change: it plays handheld because its pointer is the touch screen there (the Joy-Con gyro docked; profile key `op_mode`), and agl's post-effect program that samples its own attachment reads a snapshot (profile key `feedback_snap`). Brain Memory Training Academy is Unity 2022.3 IL2CPP with no bundles: its serialized files carry no type trees and nothing lends it a `Shader` tree, so `unityfs.py` has Unity 2022.3's `Shader` layout written out (`KNOWN_TREES`), and like Ace Attorney Investigations Collection it needs the SDK's address-region node area cut on its `sdk` build (`sdk_patches.py`). The Great Ace Attorney Chronicles is Capcom's MT Framework: files in ARC archives of zlib entries, its 460 shaders in one shader package inside one of them (`shader_split.py` `mtspk_shaders`); it copies its textures into a CPU-cached pool after creating them and never flushes (its `main` has no cache maintenance at all), so it needs `tex_flush_upload` and `tex_dirty_upload` like FINAL FANTASY TACTICS. STEINS;GATE RE:BOOT is M2's ADV engine (E-mote characters, PSB archives, H.264 movies through the SDK's movie library): it needed `nn::audio::SetAudioOutVolume` (`hle_audio.c`), and because it decodes every picture into one reused region of a pool that lives for good, the storage-sharing texture table now drops an entry whose storage another texture takes over (`nvn_mtl.m` `alias_take_over`); it draws 1280x720 in both modes by its own choice. Big Brain Academy: Brain vs. Brain is NintendoWare Bezel Engine 1.56: nearly all of RomFS is in Bezel Engine archives of zstd entries, its shaders in their `.bfsha` entries (`shader_split.py` `bea_members`); its `nninitStartup` sets a heap or a 60 GB virtual address region by `IsVirtualAddressMemoryEnabled`, so the host reports the NPDM's system resource (profile key `sys_resource`, 0 here); its activity previews loop the movie decoder with Flush and Start from four threads (`hle_movie.c`); and it plays handheld with Boost (profile keys `op_mode handheld`, `perf_mode boost`), because only handheld does it read the touch screen. Patrick's Parabox is Unity 2020.3 IL2CPP with no bundles: `unityfs.py` has Unity 2020.3's `Shader` layout written out (`KNOWN_TREES`), it needs the SDK's address-region node area cut on its `sdk` build like Brain Memory Training Academy (`sdk_patches.py`), and Unity's player hands the shared fonts straight to FreeType, so a game that imports no `ScalableFontEngineHelper::Decode` gets the TTF itself (`hle_sdk16.c` `font_skip`). Celeste is MonoGame for the Switch, its C# compiled to C++ by Sickhead's BRUTE: its shaders are MonoGame effects (MGFX) in its XNB files and in `main` (`shader_split.py` `mgfx_effect`), and it needed no host change. DRAGON QUEST XI S is Unreal Engine 4.18: legacy paks with LZ5 blocks, decoded on the Mac by the game's own LZ5 (`uepak.py`, `hle_oodle.c`), its shaders inline in the cooked packages (`shader_split.py` `ue_legacy_jobs`), and the slice-writing geometry shader of its colour-grading LUT folded into the vertex shader (`dmsh_build.py` `gs_slice`, `nvn_mtl.m` `prog_fold_gs`); Square Enix's sound driver never waits on the renderer event, so audio catch-up frames wait for queue space (`hle_audren.c`); its movie player plays only once every track holds a decoded output, so audio movie decoders keep 32 (`hle_movie.c`); and its Unreal region is capped at 4064 MB (profile key `game_args`, MB up to 4095) with the node area and large-region alignment cut on its SDK 7.3.2 build (`sdk_patches.py`) for a 5 GB guest layout; it runs at 60 fps (30 on the Switch) because the host writes Unreal's `t.MaxFPS` and `nvn.SyncInterval` in game memory (`hle_fpslock.c`, profile key `fps_target`). Monster Train 2 is Unity 2022.3 IL2CPP on Super Mario Galaxy's SDK 18.3.5 `sdk` build: Unity creates a thread only when `nn::os::GetFreeThreadCount` (`svcGetInfo` type 24, `hle_svc.c`) is at least 1; its MP4 intro needs a movie audio decoder with more output slots than a video one, because Unity's player holds about half a second of audio before it plays (`hle_movie.c` `MD_NOUT`); and its post-processing compute shaders (the colour grading LUT among them) are Unity `ComputeShader` objects, which `shader_split.py` reads (`unity_compute`) with Unity 2022.3's layout written out in `unityfs.py`. It reads no touch, so it stays docked with the 3D pad layout, and it runs at 60 fps (30 on the Switch) with the profile key `present_interval display`, as its animations follow the time that passed. Raging Loop is Unity 2018.3 IL2CPP with no bundles on DRAGON QUEST XI S's `sdk` and `subsdk0` builds: `unityfs.py` has Unity 2018.3's `Shader` layout written out (`KNOWN_TREES`, an older form than the 2020 and 2022 layouts, with the parameters in each subprogram), and it needed no host change; it reads no touch, so it stays docked with the 2D pad layout. DARK SOULS: REMASTERED is FromSoftware's engine on SDK 4.5.0, the oldest SDK so far: its shaders are GLSLC outputs in BND3 archives inside the dvdbnd archives (`shader_split.py` `bdt_shaders`), and SDK 4's GLSLC outputs are read through their section headers (`glslc_section`); it keeps 12 sampler pools with different samplers under the same IDs, so handles a shader reads from a uniform buffer take the base of the pool bound at replay (`nvn_mtl.m` `ubo_tex_id` / `ubo_samp_id`); and it runs at 60 fps (30 on the Switch) with two rewriter cuts, its frame limiter's 30 and its frame update's fixed 1/30 s step (its `patches.py`). Paper Mario: The Thousand-Year Door is Intelligent Systems' engine on NintendoWare, on Celeste's SDK 15.3.2 `sdk` build: nearly every RomFS file is zstd (`.zst`, which `shader_split.py` decompresses by magic); its AngelScript call bridges leave sp misaligned, which a general rewriter rule rounds up (`site_sp_align`); it runs at 60 fps (30 on the Switch) by the host's frame step (`FRAME_STEP`, with the floor of its vsync step cut from 2 to 1); and its three job workers poll the job list with no SVC, which held it at 24 fps on an iPhone until the general spin wait rule (`patch_nso.py` "Spin waits", `hle_thread.c` `dm_spin_wait`). Hollow Knight: Silksong is Unity 6 (6000.0.50f1) IL2CPP, the newest Unity so far: its bundles carry their own type trees, so `unityfs.py` needed no layout; Unity 6 polls `nn::hid::GetDebugPadStates` every frame (`hle_hid.c`), and it takes all its memory itself through `nn::os::AllocateAddressRegion` / `AllocateMemoryPages` with no heap, so it runs in the 5 GB guest layout that `profile_guess.py` now gives every game with an NPDM system resource, with the SDK's address-region node area cut on its `sdk` build (`sdk_patches.py`). Catherine: Full Body is Atlus's GFD engine with CRI middleware (CPK archives, ADX2 sound, Sofdec2 movies through `movie::Decoder`, whose player reads `nv12-uv-stride`, `hle_movie.c`): its 3,128 shaders are GLSLC outputs in `data/shaders_binary`, `main` and two compiles of its own GLSLC at boot, which the host lets run by reporting at least that GLSLC's GPU code version (`hle_glslc.c`); that GLSLC writes every vertex shader as a VertexA part (shader type 0, the position) and a VertexB part, which `dmsh_build.py` merges as Ryujinx does (`vertex_ab`; the screen was black without it), and because the game reuses a copy's staging memory a frame after recording it, the host commits a segment at the first pass boundary after a buffer → texture copy (`nvn_mtl.m` `g_cut_copy`). Digimon Story Cyber Sleuth: Complete Edition is Media.Vision's MVGL engine and renders with NVIDIA's desktop OpenGL 4.5 through EGL, not NVN, which the host implements on Metal (`dm/gfx/gl/hle_gl.m`: the 13 EGL imports and the 79 GL functions its code calls of the 2,956 its glad loader fetches, counted with `dm/tools/loader_census.py`; `profile_guess.py` gives `graphics gl` when `main` imports `eglCreateWindowSurface` and names `glShaderSource`); its shaders are GLSL ES 3.20 source in its MVGL archives (`dm/gfx/tools/mvgl.py`: MDB1 with doboz entries) and in `main`, which `gl_shaders.py` translates offline with glslang and SPIRV-Cross (packing needs `brew install glslang`) and the host finds by the hash of its text. Animal Crossing: New Horizons is Nintendo EPD's engine (sead / agl / gsys) on SDK 20.5.4: its `main` links its own HIPC client for `olsc:u` (cloud backup settings), which the host answers with sessions of its own (`hle_sf.c`), its island lives in device save data (`MountDeviceSaveData`, `hle_fs.c`), it skips clears with conditional rendering (profile key `render_cond`), its 63 MB `main` needed halfword jump tables padded only to their largest entry (`patch_nso.py` `half_count`), and its `SaveProc` builds a new island in grid walks that yield once per cell, so a yield whose loop moved its callee-saved registers since the last one now returns at once instead of backing off, for every game (`hle_thread.c` `thr_yield`; the island showed after 77 s of black screen, now about 10 s). DRAGON QUEST VII Reimagined is Unreal Engine 4.27: IoStore containers beside one pak, its shaders LZ4 blocks in the pak's shader code archives, which `uepak.py` decodes itself (`lz4_shaders`), and its allocator replaced as Octopath Traveler 0's (a cut and an observation gate in its `patches.py`, `hle_uemalloc.c` layout `UE4_27`) in a 2 GB engine region (profile key `game_args`); its audio renderer runs at 32 kHz, resampled by the host on the CPU path (`hle_audren.c`); and Unreal's volumetric lightmap merge sizes its indirection texture with a query on the image it writes, so a texture slot that shares its c2 word with an image slot reads the bound image (`nvn_mtl.m` `tex_slot_h`) and the translator types such a query from the image (`dmsh_xlate` `ImageTypesOf`): without them every character in the opening cutscene glowed white; it runs at 60 fps (30 on the Switch) because the host writes Unreal's `t.MaxFPS` and `rhi.SyncInterval` in game memory (`hle_fpslock.c`, profile key `fps_target`), the same two limits a 60 fps mod for the base game lifts with code patches (`UEngine::SetMaxFPS` returning at once, the name `r.VSync` broken). FINAL FANTASY RESONANCE is Unreal Engine 5.6.1, the newest Unreal so far: its shader libraries are IoStore chunks in its container, not in its pak, two layers of Oodle that `uepak.py` reads through the game's own decoder in the Mac host with no boot (`Toc`, `io_archive`, `OodleHost`); its 94 MB `main` is 95% without unwind entries, so the rewriter analyses long functions in pieces (`patch_nso.py` `pieces`; one 82 MB function took 100 GB of memory) and treats code before the first unwind entry as a function; its allocator is replaced as Octopath Traveler 0's (UE 5.6's 32-slot FMalloc, `hle_uemalloc.c` layout `UE5_6`), and its engine region is 4064 MB (profile key `game_args`), because the engine's own page allocator never gives address space back (2 GB aborted in the first battle); 2,077 particle shaders need `tex_dyn_slots`; it runs at 60 fps (30 on the Switch) by the host's `rhi.SyncInterval` write (`hle_fpslock.c`, profile key `fps_target`). Luigi's Mansion 3 is Next Level Games' own engine on NVN: its RomFS files are in the engine's `.dict` / `.data` archives, and update 1.4.0 ships `.patch` files beside the base ones, which `shader_split.py` applies as the game does (`nlg_shaders`); the game patches texture handles into its recorded command buffers in place, at the command start + 0x10 it took from `GetCommandMemoryUsed`, so single texture binds are recorded in the hardware's layout (`OP_BIND_TEX1`, every game; without it the title showed a stretched icon and a new game a white screen); its G-buffer is two integer targets, which its pixel shaders write through a second, integer-output entry point (`dmsh_build.py` `fs_uint`, every game); and it runs at 60 fps (30 on the Switch) because the host writes its frame limiter's 33.333 ms, a constant in read-only data, as 1000 / `fps_target` less half a millisecond (`hle_fpslock.c`, with `present_interval display`). Its tessellated draws are skipped (Metal 4 has no tessellation stage) and its geometry shaders do not build; neither was drawn in play so far. AI: THE SOMNIUM FILES is Unity 2017.4 IL2CPP (Cuphead's Unity layout) with FMOD: its 168 movies are H.264 MP4s that Unity's player copies into NV12 texture pairs, and its Spike Chunsoft logo movie held the game before the title until a released output slot also went on with the H.264 decoder's drain at the end of a stream (`hle_movie.c`: Unity holds all 16 video outputs by then); it binds its vertex and fragment programs apart, and the precompile prediction reused the ring slot of the combined program the replay had saved, so a draw ran with another pair's shaders until each restore of the replay state took the combination again from the per-stage bindings (`nvn_mtl.m` `prog_resolve`, every game); it plays docked with the 3D pad layout (the investigation's view is on the right stick). ANIMAL WELL embeds all its assets and 46 BNSH shaders in `main`; its base and update Program NCAs have no data section, which `nx_extract` represents as an empty RomFS directory. It needed no host change; its profile uses the 2D pad layout. AI: THE SOMNIUM FILES - nirvanA Initiative is Unity 2020.3 IL2CPP (Patrick's Parabox's Unity) with Addressables bundles and FMOD, and needed no host change: Unity 2020.3 keys a compute shader kernel's variants by keyword set (`shader_split.py` `unity_compute`, `variantMap`); its `nninitStartup` hands pool − used to StandardAllocator as virtual address memory and Unity reserves its own regions beside it, so it has the SDK's address-region node area cut on its `sdk` build (`sdk_patches.py`) and a 1 GB pool, which the NSP script's heap check now sets for such a game (`profile_guess.py` `heap_signals`: the alias region nearly full within seconds and no heap); it plays docked with the 3D pad layout (the investigation's view is on the right stick). Mario Kart 8 Deluxe is Nintendo's sead / agl / gsys engine on SDK 4.4.0, the oldest SDK so far: it lists the six default Miis at boot and builds Mii heads from the console's MiiModel system data, so the host answers the Mii database itself (`hle_mii.c`: the six default Miis, none of the console's own) and mounts a stand-in of that archive with every part empty (`dm_mii_standin`, `hle_fs.c` `MountSystemData`; the firmware is not the host's to ship, so Mii heads draw nothing); its DLC licence is decrypted in a 0x3130-byte heap that also holds the mount cache, now sized as Horizon's RomFS working memory (`romfs_work_size`); it mounts device and account save data, which are now two host saves for a game whose `main` imports both (at boot it deletes `CommonSave:/userdata.dat`); SDK 4's DeviceSink is command 0xf of 0x130 bytes, and the audio renderer's update lock is read off each SDK's own `AudioRenderSystem::Update` (`hle_audren.c` `update_lock`: it was SDK 16's for every SDK before 20); it evaluates its conditional rendering (profile key `render_cond`) and runs at 60 fps. Balatro is LÖVE 11.4 (love-nx: Lua source in the RomFS, LuaJIT's interpreter, SDL) on NVIDIA's desktop OpenGL through EGL, like Digimon: `main` imports `vkGetInstanceProcAddr` only for SDL's Vulkan loader, which `profile_guess.py` leaves out of its Vulkan count; LÖVE takes its core-profile paths when the GL layer says core (`GL_CONTEXT_PROFILE_MASK`): persistently mapped vertex streams fenced per frame, attribute bindings and current values, uniform queries, texture storage, 3D and array textures, swizzles and mipmaps, about 150 GL functions in all (`hle_gl.m`, counted with `loader_census.py`, which now follows LÖVE's glad through registers; `DM_GL_STUBS=1` names a missing one at its first call); its 35 shaders are GLSL that LÖVE puts together at run time, captured by the NSP script on the Mac (profile `gl_capture.tsv`, `capture_shaders`), with `bool` uniforms keeping their type (`gl_shaders.py`); it opens the audio renderer without an event, which started no render thread before (`hle_audren.c` `ar_open`: it was silent); and it plays by touch in handheld mode (profile keys `op_mode handheld`, `pad_layout touch`: the iPhone gamepad's Tap layout sends every touch to the game). Any Lua error makes it quit, and love-nx then crashes in its video worker's teardown (`main+0x339c00`): look for the Lua error first. ROMANCE OF THE THREE KINGDOMS 8 REMAKE is Koei Tecmo's KTGL on SDK 17.5.3, with a newer RDB than Age of Calamity's: `.fdata` files (a `PDRK` header, then `IDRK` entries) whose entries are LZ4 or zlib in 16 KB chunks of a new form (`shader_split.py` `idrk_data`: flag 0x400000, LZ4 with 0x100000 too), 59,363 shaders in all; its update is a multi-program patch that carries a whole second program (`…0001`, started with `nn::oe::ExecuteProgram(1)`) beside the game's, so `nx_extract` takes program index 0's NCAs (it took the second program and failed); SDK 17.5.3's `OpenAudioRenderer` with an event calls the form without one through the PLT, which the host's hook now passes straight to the SDK (`hle_audren.c` `t_in_open`); it plays at 30 fps with a controller (it reads a USB mouse, not the touch screen). Taiko Risshiden V DX is KTGL on SDK 12.3.3, mostly 2D, in Japanese and Chinese only (the NSP script packs Japanese): its 212 shaders are GLSLC outputs in `main` and one G2S container (`eff/KTGLEffect.g1s`), read as before; it needed `nn::oe::SetCpuOverclockEnabled` (`hle_oe.c`: its first boot crashed in apm); it plays by touch in handheld mode (profile keys `op_mode handheld`, `pad_layout touch`), taking its taps, drags and flicks only from `nn::hid::GetGestureStates`, which the host now recognizes from the touch points for every game (`hle_touch.c` `gesture_sample`, yuzu's rules plus an 8 px slop; unit test `t_gesture`; the `DM_CTL` line `drag` tests pans on the Mac); and its frame end slept in 2 ms rounds until 1/60 s had passed, which ended at 18.2 ms (55 fps), so a build cut skips that wait and the presents hold 60 (its `patches.py`). Super Smash Bros. Ultimate is Bandai Namco / Sora's engine on Catherine: Full Body's SDK 8.2.1 `sdk` build: everything is in one `data.arc` of Hash40-named zstd files (`dm/gfx/tools/smash_arc.py`; the split reads its current files, 35,012 shaders); its fighters' code is 98 NROs in that archive, loaded and unloaded per battle with `nn::ro::LoadModule`, which the NSP script collects by the SHA-256s its NRRs list and rewrites (`dm/tools/nro_collect.py`), the host loads by the image's hash and binds `main`'s `lua2cpp` imports to (`hle_ro.c`, `loader.c` "NRO modules"), and the iOS app carries packed into three sections of the executable (`gen_embed.py`, `loader.c` `nro_pieces`); its engine reserves 62 GB of address space, cut to 4 GB in its `patches.py` with the SDK's node area and 1 GB alignment cut on that `sdk` build (`sdk_patches.py`) for the 5 GB guest layout; and it fetches `nvnSetExternalDebuggerEnabledNVX`, a no-op. Bayonetta 3 is PlatinumGames' engine: everything in PKZ archives of DAT archives whose entries are Oodle Kraken, which the shader split decodes with the game's own streaming decoder (`main` has no `OodleLZ_Decompress`, so `hle_oodle.c` drives `OodleLZDecoder_*`), its shaders the engine's own shader objects (`shader_split.py` `pg_shader`); the engine refuses shader code newer than the driver reports, so the NVN layer's newest GPU code version follows the SDK (`hle_nvn.c`, 1.16 from SDK 13). Advance Wars 1+2: Re-Boot Camp is Unity 2020.2 IL2CPP on The Great Ace Attorney Chronicles' SDK 10.4.1 `sdk` build, which takes the node-area and 1 GB alignment cuts (`sdk_patches.py`) for its virtual address memory, with a 2 GB pool (the heap check's 1 GB ran its malloc dry at the first loading screen, and Unity's GPU pool allocation then spun for good); its Bink 2 movies draw with 32 shaders whose control sections and code areas lie loose in `main`, paired by data records or by the code that builds their addresses (`shader_split.py` `raw_shaders`; every movie drew white without them). Pokémon Sword is Game Freak's engine before Trinity, on Super Mario Odyssey's SDK 7.3.2 `sdk` and movie builds: its shaders are BNSH entries of GFPAK archives (LZ4, `shader_split.py` `gfpak_members`) and Silicon Studio's YEBIS post effects, a `.tfxo` file in a zlib stream in `main` (`tfxo_streams`); its G-buffer writes float and integer targets at once, which takes a pixel shader entry point that returns only the integer outputs as integers (`dmsh_build.py` `fs_uint`, `main0_m`; `nvn_mtl.m` `pso_mixed_uint`), its cube views of fewer than 6 layers count layers in cubes (`tex_by_id`), and it writes beside its packaged textures in host pages they share, which no longer re-uploads them when the texture's own bytes are unchanged (`nvn_mtl.m` `pkg_edges_clean`; frames went from 33 to 75 ms without it); it asks for a Poké Ball Plus (Palma, `hle_hid.c`) and the Let's Go play statistics (`hle_offline.c`), both answered as absent. Pikmin 4 is Unreal Engine 4.26.2 with IoStore (its shaders LZ4 in the pak's shader code archives, as DRAGON QUEST VII Reimagined's) and Wwise: its allocator is replaced as DRAGON QUEST VII Reimagined's (`hle_uemalloc.c` layout `UE4_27`), but this build reserves its engine region only when `-SwitchVirtualAddressSpaceSize=` is absent, so a cut in its `patches.py` lowers the 62 GB default to 4064 MB instead of `game_args`; the rewriter now re-encodes an `adrp` inside an exclusive window (`window_adrp`) and accepts a gate before a `ret` (`scratch_dead`); and a network request now stays on hold for 50 ms, as Horizon's asynchronous one (`hle_net.c`): answered at once, its BCAT thread could finish before its creator stored "started", and about one boot in six waited at the black loading screen for good. Stardew Valley is MonoGame on Sickhead's BRUTE like Celeste (C# compiled to C++, a Boehm collector) with XACT sound, on SDK 20.5.27: 3,535 of its 3,549 XNB files are compressed (LZ4, 8 LZX), which `shader_split.py` decompresses (`xnb_decompress`) to reach its one content effect beside the 64 shaders in `main`; it draws nearly everything with SpriteBatch (a prewarm list of 2 shaders and 4 pipelines), reads only the pad, and its character creation names the farmer and the farm through the software keyboard, whose Mac text box releases the buttons that opened it (`front_mac.m`, found on this game); its profile uses the 3D pad layout (the D-pad in menus, the right stick for the cursor), and it needed no other host change. BALL x PIT is Unity 6 (6000.0.62f1) IL2CPP with FMOD and Rewired, as Hollow Knight: Silksong: it needed no host change, only the SDK's address-region node area cut on its SDK 20.5.19 `sdk` build (`sdk_patches.py`); its loose serialized files have no type trees and borrow the `Shader` tree its bundles carry, and it draws 1280x720 into 1920x1080 window textures with a window crop (a Mac shot shows the crop only with `DM_NVN_SHOT_OUT`); it plays docked with the 3D pad layout (the right stick aims). Mario vs. Donkey Kong is Nintendo's sead / agl / gsys engine on SDK 15.3.0, its base game a cartridge dump (.xci), its cutscenes MP4 files (H.264 and AAC) through the SDK's movie library and an AudioOut of its own: its movie player keeps the outputs it holds in a ring of 32 per track with no bounds check, so AAC movie decoders offer 32 outputs (Vorbis keeps 64), and it sizes its sound buffers by `GetOutputBufferSize` and appends each whole, so an AAC decoder reports one frame (`hle_movie.c`: with 64 outputs the opening movie overran the heap, with the 128 KB answer it froze); it skips clears under render conditions (profile key `render_cond`), sets the advanced blend mode SRC_OVER, which the replay now blends with the Porter-Duff factors it amounts to (`nvn_mtl.m` `adv_blend`), and plays docked with the 2D pad layout. Bayonetta 2 is PlatinumGames' engine in its Wii U form on SDK 3.6.0, the oldest SDK so far, which needed no host change of its own: its files are DAT archives in CRI CPK archives (CRILAYLA-compressed entries, `dm/gfx/tools/cpk.py`, which also reads the masked @UTF tables of Unicorn Overlord's CPKs), its 1,856 shaders BNSH files of one stage each in the shader DATs, which the split decodes from every CPK entry (`shader_split.py` `cpk_jobs`); a cleared attachment larger than the render pass is now cleared in a pass of its own, as NVN clears the whole target (`nvn_mtl.m` `rp_begin_ex_`; the opening narration drew in a corner of a black screen), and `Downsample` of a single-sample texture is a filtered scaling copy that may convert the format (its bloom chain, `copy_t2t`); it plays docked with the 3D pad layout (the camera is on the right stick). [README.md](README.md) is the player-facing page (games, packing, playing); [docs/development.md](docs/development.md) has the internals, the script's options, building by hand, prewarm lists and per-game notes. +- This repository runs Nintendo Switch games natively on Apple platforms: the game's own code runs, rewritten only where Apple's kernel requires it. Sixty games are playable on the iPhone: Super Mario Bros. Wonder (update 1.2.1, profile `010015100B514000`), Fire Emblem Engage (update 2.0.0, `0100A6301214E000`), Metroid Dread (update 2.1.0, `010093801237C000`), 13 Sentinels: Aegis Rim (update 1.10, `01003FC01670C000`), Super Mario 3D World + Bowser's Fury (update 1.2.2, `010028600EBDA000`), The Legend of Zelda: Breath of the Wild (update 1.9.0, SDK 20, `01007EF00011E000`), The Legend of Zelda: Link's Awakening (update 1.1.0, SDK 8, `01006BB00C6F0000`) Super Mario Odyssey (update 1.4.1, SDK 7, `0100000000010000`), Hades (update 1.0.38233, SDK 9, `0100535012974000`), Hyrule Warriors: Age of Calamity (update 1.3.0, SDK 9.6, `01002B00111A2000`), Fire Emblem: Three Houses (update 1.2.0, SDK 6.5, `010055D009F78000`), Super Mario Galaxy (update 1.3.1, SDK 18, `010099C022B96000`) The Legend of Zelda: Tears of the Kingdom (update 1.4.3, SDK 20, `0100F2C0115B6000`) Monster Hunter Rise (update 16.0.2, SDK 11.4.3, `0100B04011742000`), Ace Attorney Investigations Collection (update 1.0.0.2, SDK 17.5.3, `010005501E68C000`), Hades II (base game, SDK 19.3.9, `0100A00019DE0000`), Unicorn Overlord (update 1.05, SDK 16.2.4, `010069401ADB8000`), Rhythm Heaven Groove (base game 1.0.0, SDK 21.4.0, `0100D9F01D474000`), Octopath Traveler 0 (update 1.0.5, SDK 19.3.13, `01005270232F2000`), Pokémon Legends: Z-A (update 2.0.2, SDK 19.3.11, `0100F43008C44000`), Cuphead (update 1.3.7, SDK 5.5.0, `0100A5C00D162000`), Super Mario Galaxy 2 (update 1.4.0, SDK 18.3.5, `0100FD8022DAA000`), FINAL FANTASY TACTICS - The Ivalice Chronicles (update 1.4.0, SDK 19.3.9, `010038B015560000`), Absolum (update 1.1.1, SDK 18.3.2, `0100A83022A22000`), Captain Toad: Treasure Tracker (update 1.4.2, SDK 8.2.0, `01009BF0072D4000`) and Brain Memory Training Academy (base game 1.0.0, SDK 16.2.4, `0100F5D01DA3A000`), The Great Ace Attorney Chronicles (base game 1.0.0, SDK 10.4.1, `010036E00FB20000`), STEINS;GATE RE:BOOT (update 1.0.3, SDK 20.5.17, `01008BC024FDE000`), Big Brain Academy: Brain vs. Brain (update 1.2.0, SDK 11.4.3, `0100620012D6E000`), Patrick's Parabox (update 1.0.1, SDK 13.3.7, `0100E44016C22000`), Celeste (update 1.4.1.1, SDK 15.3.2, `01002B30028F6000`), DRAGON QUEST XI S: Echoes of an Elusive Age – Definitive Edition (update 1.0.4, SDK 7.3.2, `01006C300E9F0000`), Monster Train 2 (update 1.1.1, SDK 18.3.5, `010051701FB46000`), Raging Loop (base game 1.0.0, SDK 7.3.2, `010020400E1C2000`), DARK SOULS: REMASTERED (update 1.0.3, SDK 4.5.0, `01004AB00A260000`), Paper Mario: The Thousand-Year Door (update 1.0.1, SDK 15.3.2, `0100ECD018EBE000`), Hollow Knight: Silksong (update 1.0.30000, SDK 20.5.8, `010013C00E930000`), Catherine: Full Body (update 1.0.1a, SDK 8.2.1, `0100BF00112C0000`), Digimon Story Cyber Sleuth: Complete Edition (update 1.0.3, SDK 6.4.0, `010014E00DB56000`), Animal Crossing: New Horizons (update 3.0.3, SDK 20.5.4, `01006F8002326000`), DRAGON QUEST VII Reimagined (update 1.2.0, SDK 19.3.1, `0100A9D01C446000`), FINAL FANTASY RESONANCE (update 1.0.1, SDK 20.5.17, `0100606026F12000`), Luigi's Mansion 3 (update 1.4.0, SDK 7.3.2, `0100DCA0064A6000`), AI: THE SOMNIUM FILES (update 1.0.1, SDK 6.4.2, `010089B00D09C000`), ANIMAL WELL (update 1.0.10, SDK 20.5.7, `010020D01AD24000`), AI: THE SOMNIUM FILES - nirvanA Initiative (update 1.0.2, SDK 13.3.5, `0100713016CCC000`), Mario Kart 8 Deluxe (update 4.0.0, SDK 4.4.0, `0100152000022000`), Balatro (update 1.1.3, SDK 18.3.2, `0100CD801CE5E000`), ROMANCE OF THE THREE KINGDOMS 8 REMAKE (update 1.1.3, SDK 17.5.3, `0100C2A01A730000`), Taiko Risshiden V DX (update 1.1.1, SDK 12.3.3, `0100346017304000`), Super Smash Bros. Ultimate (update 13.0.5, SDK 8.2.1, `01006A800016E000`), Bayonetta 2 (update 1.2, SDK 3.6.0, `01007960049A0000`), Bayonetta 3 (update 1.2.0, SDK 13.3.2, `01004A4010FEA000`), Advance Wars 1+2: Re-Boot Camp (base game 1.0.0, SDK 10.4.1, `0100300012F2A000`) Pokémon Sword (update 1.3.2, SDK 7.3.2, `0100ABF008968000`), Pikmin 4 (update 1.1.1, SDK 10.4.8, `0100B7C00933A000`), Stardew Valley (update 1.6.15.13, SDK 20.5.27, `0100E65002BB8000`), BALL x PIT (update 1.293, SDK 20.5.19, `010086A022444000`), Mario vs. Donkey Kong (update 1.0.1, SDK 15.3.0, `0100B99019412000`) and Bayonetta (update 1.1, SDK 3.6.0, `010076F0049A2000`). Hades renders with Vulkan, which the host implements on Metal (`dm/gfx/vk/hle_vk.m`; `main` imports Vulkan, not NVN). Age of Calamity is Koei Tecmo's KTGL engine: files in RDB archives, shaders as GLSLC outputs (`shader_split.py` `idrk_shaders`). Three Houses is KTGL too; 9 of its shaders exist only as compiles of the game's own GLSLC at run time, captured once on the Mac (its `main` holds GLSL sources and imports `glslcCompile`). Breath of the Wild and Tears of the Kingdom run at 60 fps through a frame step the host decides in whole vsyncs (`FRAME_STEP` in their profiles' `patches.py`, `nvn_fstep.h`, profile keys `fps_target` and `frame_step`); Tears of the Kingdom has a 5 GB guest layout, and its `sdk` build (Breath of the Wild's) has the SDK's address-region node area cut (`sdk_patches.py`): without it the resource heaps ran out of alias region at the first descent from the Great Sky Island and the game played its memory-shortage Blood Moon, which put Link back at the start (its log shows `MSF`). Monster Hunter Rise is Capcom's RE Engine: files in KPKA PAK archives (`shader_split.py` `kpka_jobs`, shaders in SDF files), the base game an XCI, its GPU heap a 64 GB sparse virtual pool (`hle_nvn.c` `vpool_*`, a 4 KB page table the replay reads textures through); it runs at 60 fps (30 on the Switch). Super Mario Galaxy is the Wii game on NERD's Hagi layer (PowerPC code recompiled into `main`), renders with Vulkan, and generates its shaders at run time, which the NSP script captures on the Mac (no SPIR-V file in its RomFS); its pointer is the touch screen in handheld mode (profile key `op_mode`). Ace Attorney Investigations Collection is Unity 2022 IL2CPP: its shaders keep their parameters as blob entries of their own (`shader_split.py` `unity_code_blobs`), and its C# file API goes through the SDK's C library, whose path checks the host answers (`hle_fs.c` `IsPathMounted` and the length limits). Hades II, unlike Hades, renders with NVN; its shaders bind textures at fixed slots up to 34 (slot 34's handle lies in the driver's image table, `dmsh_build.py`), and the two long lines through Melinoë while the staff's Omega attack charges are the game's own aim lines, not a rendering bug. Unicorn Overlord is Vanillaware's engine like 13 Sentinels (shaders compiled into `main`); both need the profile key `alloc_big_align`, which aligns large allocations to 64 KB so the ring heaps the engine cuts from a memory pool fit. Rhythm Heaven Groove is Nintendo's own 2D engine on SDK 21, the newest SDK so far (its DSP command list has no magic, `hle_audren.c`); it plays handheld with Boost (profile keys `op_mode handheld`, `perf_mode boost`), which skips its TV latency calibration and keeps its 1920x1080 draw size. Octopath Traveler 0 is Unreal Engine 5: everything in one pak with an AES-encrypted index whose key is found in `main` (`dm/gfx/tools/uepak.py`), its shaders Oodle-compressed in the pak's shader code archives and decoded once on the Mac by the game's own Oodle (any game with Unreal paks, `DM_OODLE_JOB`), its allocator replaced by the host's because Unreal's reserves 37 GB of address space (a cut in its `patches.py`, `hle_uemalloc.c`), its address region capped by the game's own argument (profile key `game_args`), and the particle shaders that pick a texture slot at run time bound by slot (profile key `tex_dyn_slots`); it runs at 60 fps (30 on the Switch) because the host writes Unreal's `t.MaxFPS` and `rhi.SyncInterval` in game memory (`hle_fpslock.c`, profile key `fps_target`). Pokémon Legends: Z-A is Game Freak's Trinity engine: everything in the packs of `arc/data.trpfs` (FlatBuffers, every file Oodle-compressed), which the shader split decodes with the game's own decoder in the Mac host's tool mode (`shader_split.py` `trinity_shaders`, `hle_oodle.c` `DM_OODLE_SERVE`); its 12 GB StandardAllocator is cut to 4 GB to fit a 5 GB guest layout, and the host refuses maps past the pool as Horizon does (profile key `mem_map_limit`); its characters are skinned with transform feedback (`dmsh_build.py` `vs_tf`, `nvn_mtl.m` `tf_draw`), and its occlusion queries, which decide how characters are animated, need the draw's base instance in the driver segment (c0 + 0x644, `encode_args`). Cuphead is Unity 2017.4 IL2CPP on SDK 5.5.0: Unity 2017's serialized and Shader formats are read by `unityfs.py` / `shader_split.py`, its rewritten modules (80 MB) need the profile key `mem_used` above the default 64 MB, or its `SetHeapSize` fails, and its NVN pool allocator breaks on a zero-size block, so the host never reports a ZCull storage size of 0 (`hle_nvn.c` `zcull_size`). Super Mario Galaxy 2 is Galaxy's Hagi layer with Galaxy's `sdk` build; its movie player reserves 384 MB of virtual address memory, which fits only because a rewriter cut on that `sdk` build shrinks the SDK's address-region node area to 62 MB (`sdk_patches.py`; the profile's alias region is 512 MB). FINAL FANTASY TACTICS - The Ivalice Chronicles is Square Enix's engine on NVN: its shaders are GLSLC outputs in loose technique files, which `shader_split.py` reads in any RomFS file no other reader takes; its UI textures are written by the CPU into uncached pools (profile keys `tex_flush_upload`, `tex_dirty_upload`); and two job-pool workers share one auto-clear event, so a build cut makes a worker woken in another's place pass the wake on (its `patches.py`). Absolum is FNA (XNA 4 in C#) on .NET NativeAOT with SDL3 and FNA3D's NVN driver: its `main` starts its text with 1.7 MB of data the rewriter leaves alone (`nso_code.py`), its shaders are GLSLC outputs in `shaders.nx.bin`, its picture is flipped by a viewport swizzle the host applies, and everything lives in virtual address memory: malloc's 40 GB StandardAllocator is cut to 2.5 GB and the SDK's node area and large-region alignment are cut (its `patches.py` and `sdk_patches.py`), and the .NET GC's region range is 1.5 GB (profile key `game_env`), to fit a 5 GB guest layout. Captain Toad: Treasure Tracker is Nintendo EPD Tokyo's engine (the `al` library over sead / agl, as 3D World and Odyssey) and needed no host change: it plays handheld because its pointer is the touch screen there (the Joy-Con gyro docked; profile key `op_mode`), and agl's post-effect program that samples its own attachment reads a snapshot (profile key `feedback_snap`). Brain Memory Training Academy is Unity 2022.3 IL2CPP with no bundles: its serialized files carry no type trees and nothing lends it a `Shader` tree, so `unityfs.py` has Unity 2022.3's `Shader` layout written out (`KNOWN_TREES`), and like Ace Attorney Investigations Collection it needs the SDK's address-region node area cut on its `sdk` build (`sdk_patches.py`). The Great Ace Attorney Chronicles is Capcom's MT Framework: files in ARC archives of zlib entries, its 460 shaders in one shader package inside one of them (`shader_split.py` `mtspk_shaders`); it copies its textures into a CPU-cached pool after creating them and never flushes (its `main` has no cache maintenance at all), so it needs `tex_flush_upload` and `tex_dirty_upload` like FINAL FANTASY TACTICS. STEINS;GATE RE:BOOT is M2's ADV engine (E-mote characters, PSB archives, H.264 movies through the SDK's movie library): it needed `nn::audio::SetAudioOutVolume` (`hle_audio.c`), and because it decodes every picture into one reused region of a pool that lives for good, the storage-sharing texture table now drops an entry whose storage another texture takes over (`nvn_mtl.m` `alias_take_over`); it draws 1280x720 in both modes by its own choice. Big Brain Academy: Brain vs. Brain is NintendoWare Bezel Engine 1.56: nearly all of RomFS is in Bezel Engine archives of zstd entries, its shaders in their `.bfsha` entries (`shader_split.py` `bea_members`); its `nninitStartup` sets a heap or a 60 GB virtual address region by `IsVirtualAddressMemoryEnabled`, so the host reports the NPDM's system resource (profile key `sys_resource`, 0 here); its activity previews loop the movie decoder with Flush and Start from four threads (`hle_movie.c`); and it plays handheld with Boost (profile keys `op_mode handheld`, `perf_mode boost`), because only handheld does it read the touch screen. Patrick's Parabox is Unity 2020.3 IL2CPP with no bundles: `unityfs.py` has Unity 2020.3's `Shader` layout written out (`KNOWN_TREES`), it needs the SDK's address-region node area cut on its `sdk` build like Brain Memory Training Academy (`sdk_patches.py`), and Unity's player hands the shared fonts straight to FreeType, so a game that imports no `ScalableFontEngineHelper::Decode` gets the TTF itself (`hle_sdk16.c` `font_skip`). Celeste is MonoGame for the Switch, its C# compiled to C++ by Sickhead's BRUTE: its shaders are MonoGame effects (MGFX) in its XNB files and in `main` (`shader_split.py` `mgfx_effect`), and it needed no host change. DRAGON QUEST XI S is Unreal Engine 4.18: legacy paks with LZ5 blocks, decoded on the Mac by the game's own LZ5 (`uepak.py`, `hle_oodle.c`), its shaders inline in the cooked packages (`shader_split.py` `ue_legacy_jobs`), and the slice-writing geometry shader of its colour-grading LUT folded into the vertex shader (`dmsh_build.py` `gs_slice`, `nvn_mtl.m` `prog_fold_gs`); Square Enix's sound driver never waits on the renderer event, so audio catch-up frames wait for queue space (`hle_audren.c`); its movie player plays only once every track holds a decoded output, so audio movie decoders keep 32 (`hle_movie.c`); and its Unreal region is capped at 4064 MB (profile key `game_args`, MB up to 4095) with the node area and large-region alignment cut on its SDK 7.3.2 build (`sdk_patches.py`) for a 5 GB guest layout; it runs at 60 fps (30 on the Switch) because the host writes Unreal's `t.MaxFPS` and `nvn.SyncInterval` in game memory (`hle_fpslock.c`, profile key `fps_target`). Monster Train 2 is Unity 2022.3 IL2CPP on Super Mario Galaxy's SDK 18.3.5 `sdk` build: Unity creates a thread only when `nn::os::GetFreeThreadCount` (`svcGetInfo` type 24, `hle_svc.c`) is at least 1; its MP4 intro needs a movie audio decoder with more output slots than a video one, because Unity's player holds about half a second of audio before it plays (`hle_movie.c` `MD_NOUT`); and its post-processing compute shaders (the colour grading LUT among them) are Unity `ComputeShader` objects, which `shader_split.py` reads (`unity_compute`) with Unity 2022.3's layout written out in `unityfs.py`. It reads no touch, so it stays docked with the 3D pad layout, and it runs at 60 fps (30 on the Switch) with the profile key `present_interval display`, as its animations follow the time that passed. Raging Loop is Unity 2018.3 IL2CPP with no bundles on DRAGON QUEST XI S's `sdk` and `subsdk0` builds: `unityfs.py` has Unity 2018.3's `Shader` layout written out (`KNOWN_TREES`, an older form than the 2020 and 2022 layouts, with the parameters in each subprogram), and it needed no host change; it reads no touch, so it stays docked with the 2D pad layout. DARK SOULS: REMASTERED is FromSoftware's engine on SDK 4.5.0, the oldest SDK so far: its shaders are GLSLC outputs in BND3 archives inside the dvdbnd archives (`shader_split.py` `bdt_shaders`), and SDK 4's GLSLC outputs are read through their section headers (`glslc_section`); it keeps 12 sampler pools with different samplers under the same IDs, so handles a shader reads from a uniform buffer take the base of the pool bound at replay (`nvn_mtl.m` `ubo_tex_id` / `ubo_samp_id`); and it runs at 60 fps (30 on the Switch) with two rewriter cuts, its frame limiter's 30 and its frame update's fixed 1/30 s step (its `patches.py`). Paper Mario: The Thousand-Year Door is Intelligent Systems' engine on NintendoWare, on Celeste's SDK 15.3.2 `sdk` build: nearly every RomFS file is zstd (`.zst`, which `shader_split.py` decompresses by magic); its AngelScript call bridges leave sp misaligned, which a general rewriter rule rounds up (`site_sp_align`); it runs at 60 fps (30 on the Switch) by the host's frame step (`FRAME_STEP`, with the floor of its vsync step cut from 2 to 1); and its three job workers poll the job list with no SVC, which held it at 24 fps on an iPhone until the general spin wait rule (`patch_nso.py` "Spin waits", `hle_thread.c` `dm_spin_wait`). Hollow Knight: Silksong is Unity 6 (6000.0.50f1) IL2CPP, the newest Unity so far: its bundles carry their own type trees, so `unityfs.py` needed no layout; Unity 6 polls `nn::hid::GetDebugPadStates` every frame (`hle_hid.c`), and it takes all its memory itself through `nn::os::AllocateAddressRegion` / `AllocateMemoryPages` with no heap, so it runs in the 5 GB guest layout that `profile_guess.py` now gives every game with an NPDM system resource, with the SDK's address-region node area cut on its `sdk` build (`sdk_patches.py`). Catherine: Full Body is Atlus's GFD engine with CRI middleware (CPK archives, ADX2 sound, Sofdec2 movies through `movie::Decoder`, whose player reads `nv12-uv-stride`, `hle_movie.c`): its 3,128 shaders are GLSLC outputs in `data/shaders_binary`, `main` and two compiles of its own GLSLC at boot, which the host lets run by reporting at least that GLSLC's GPU code version (`hle_glslc.c`); that GLSLC writes every vertex shader as a VertexA part (shader type 0, the position) and a VertexB part, which `dmsh_build.py` merges as Ryujinx does (`vertex_ab`; the screen was black without it), and because the game reuses a copy's staging memory a frame after recording it, the host commits a segment at the first pass boundary after a buffer → texture copy (`nvn_mtl.m` `g_cut_copy`). Digimon Story Cyber Sleuth: Complete Edition is Media.Vision's MVGL engine and renders with NVIDIA's desktop OpenGL 4.5 through EGL, not NVN, which the host implements on Metal (`dm/gfx/gl/hle_gl.m`: the 13 EGL imports and the 79 GL functions its code calls of the 2,956 its glad loader fetches, counted with `dm/tools/loader_census.py`; `profile_guess.py` gives `graphics gl` when `main` imports `eglCreateWindowSurface` and names `glShaderSource`); its shaders are GLSL ES 3.20 source in its MVGL archives (`dm/gfx/tools/mvgl.py`: MDB1 with doboz entries) and in `main`, which `gl_shaders.py` translates offline with glslang and SPIRV-Cross (packing needs `brew install glslang`) and the host finds by the hash of its text. Animal Crossing: New Horizons is Nintendo EPD's engine (sead / agl / gsys) on SDK 20.5.4: its `main` links its own HIPC client for `olsc:u` (cloud backup settings), which the host answers with sessions of its own (`hle_sf.c`), its island lives in device save data (`MountDeviceSaveData`, `hle_fs.c`), it skips clears with conditional rendering (profile key `render_cond`), its 63 MB `main` needed halfword jump tables padded only to their largest entry (`patch_nso.py` `half_count`), and its `SaveProc` builds a new island in grid walks that yield once per cell, so a yield whose loop moved its callee-saved registers since the last one now returns at once instead of backing off, for every game (`hle_thread.c` `thr_yield`; the island showed after 77 s of black screen, now about 10 s). DRAGON QUEST VII Reimagined is Unreal Engine 4.27: IoStore containers beside one pak, its shaders LZ4 blocks in the pak's shader code archives, which `uepak.py` decodes itself (`lz4_shaders`), and its allocator replaced as Octopath Traveler 0's (a cut and an observation gate in its `patches.py`, `hle_uemalloc.c` layout `UE4_27`) in a 2 GB engine region (profile key `game_args`); its audio renderer runs at 32 kHz, resampled by the host on the CPU path (`hle_audren.c`); and Unreal's volumetric lightmap merge sizes its indirection texture with a query on the image it writes, so a texture slot that shares its c2 word with an image slot reads the bound image (`nvn_mtl.m` `tex_slot_h`) and the translator types such a query from the image (`dmsh_xlate` `ImageTypesOf`): without them every character in the opening cutscene glowed white; it runs at 60 fps (30 on the Switch) because the host writes Unreal's `t.MaxFPS` and `rhi.SyncInterval` in game memory (`hle_fpslock.c`, profile key `fps_target`), the same two limits a 60 fps mod for the base game lifts with code patches (`UEngine::SetMaxFPS` returning at once, the name `r.VSync` broken). FINAL FANTASY RESONANCE is Unreal Engine 5.6.1, the newest Unreal so far: its shader libraries are IoStore chunks in its container, not in its pak, two layers of Oodle that `uepak.py` reads through the game's own decoder in the Mac host with no boot (`Toc`, `io_archive`, `OodleHost`); its 94 MB `main` is 95% without unwind entries, so the rewriter analyses long functions in pieces (`patch_nso.py` `pieces`; one 82 MB function took 100 GB of memory) and treats code before the first unwind entry as a function; its allocator is replaced as Octopath Traveler 0's (UE 5.6's 32-slot FMalloc, `hle_uemalloc.c` layout `UE5_6`), and its engine region is 4064 MB (profile key `game_args`), because the engine's own page allocator never gives address space back (2 GB aborted in the first battle); 2,077 particle shaders need `tex_dyn_slots`; it runs at 60 fps (30 on the Switch) by the host's `rhi.SyncInterval` write (`hle_fpslock.c`, profile key `fps_target`). Luigi's Mansion 3 is Next Level Games' own engine on NVN: its RomFS files are in the engine's `.dict` / `.data` archives, and update 1.4.0 ships `.patch` files beside the base ones, which `shader_split.py` applies as the game does (`nlg_shaders`); the game patches texture handles into its recorded command buffers in place, at the command start + 0x10 it took from `GetCommandMemoryUsed`, so single texture binds are recorded in the hardware's layout (`OP_BIND_TEX1`, every game; without it the title showed a stretched icon and a new game a white screen); its G-buffer is two integer targets, which its pixel shaders write through a second, integer-output entry point (`dmsh_build.py` `fs_uint`, every game); and it runs at 60 fps (30 on the Switch) because the host writes its frame limiter's 33.333 ms, a constant in read-only data, as 1000 / `fps_target` less half a millisecond (`hle_fpslock.c`, with `present_interval display`). Its tessellated draws are skipped (Metal 4 has no tessellation stage) and its geometry shaders do not build; neither was drawn in play so far. AI: THE SOMNIUM FILES is Unity 2017.4 IL2CPP (Cuphead's Unity layout) with FMOD: its 168 movies are H.264 MP4s that Unity's player copies into NV12 texture pairs, and its Spike Chunsoft logo movie held the game before the title until a released output slot also went on with the H.264 decoder's drain at the end of a stream (`hle_movie.c`: Unity holds all 16 video outputs by then); it binds its vertex and fragment programs apart, and the precompile prediction reused the ring slot of the combined program the replay had saved, so a draw ran with another pair's shaders until each restore of the replay state took the combination again from the per-stage bindings (`nvn_mtl.m` `prog_resolve`, every game); it plays docked with the 3D pad layout (the investigation's view is on the right stick). ANIMAL WELL embeds all its assets and 46 BNSH shaders in `main`; its base and update Program NCAs have no data section, which `nx_extract` represents as an empty RomFS directory. It needed no host change; its profile uses the 2D pad layout. AI: THE SOMNIUM FILES - nirvanA Initiative is Unity 2020.3 IL2CPP (Patrick's Parabox's Unity) with Addressables bundles and FMOD, and needed no host change: Unity 2020.3 keys a compute shader kernel's variants by keyword set (`shader_split.py` `unity_compute`, `variantMap`); its `nninitStartup` hands pool − used to StandardAllocator as virtual address memory and Unity reserves its own regions beside it, so it has the SDK's address-region node area cut on its `sdk` build (`sdk_patches.py`) and a 1 GB pool, which the NSP script's heap check now sets for such a game (`profile_guess.py` `heap_signals`: the alias region nearly full within seconds and no heap); it plays docked with the 3D pad layout (the investigation's view is on the right stick). Mario Kart 8 Deluxe is Nintendo's sead / agl / gsys engine on SDK 4.4.0, the oldest SDK so far: it lists the six default Miis at boot and builds Mii heads from the console's MiiModel system data, so the host answers the Mii database itself (`hle_mii.c`: the six default Miis, none of the console's own) and mounts a stand-in of that archive with every part empty (`dm_mii_standin`, `hle_fs.c` `MountSystemData`; the firmware is not the host's to ship, so Mii heads draw nothing); its DLC licence is decrypted in a 0x3130-byte heap that also holds the mount cache, now sized as Horizon's RomFS working memory (`romfs_work_size`); it mounts device and account save data, which are now two host saves for a game whose `main` imports both (at boot it deletes `CommonSave:/userdata.dat`); SDK 4's DeviceSink is command 0xf of 0x130 bytes, and the audio renderer's update lock is read off each SDK's own `AudioRenderSystem::Update` (`hle_audren.c` `update_lock`: it was SDK 16's for every SDK before 20); it evaluates its conditional rendering (profile key `render_cond`) and runs at 60 fps. Balatro is LÖVE 11.4 (love-nx: Lua source in the RomFS, LuaJIT's interpreter, SDL) on NVIDIA's desktop OpenGL through EGL, like Digimon: `main` imports `vkGetInstanceProcAddr` only for SDL's Vulkan loader, which `profile_guess.py` leaves out of its Vulkan count; LÖVE takes its core-profile paths when the GL layer says core (`GL_CONTEXT_PROFILE_MASK`): persistently mapped vertex streams fenced per frame, attribute bindings and current values, uniform queries, texture storage, 3D and array textures, swizzles and mipmaps, about 150 GL functions in all (`hle_gl.m`, counted with `loader_census.py`, which now follows LÖVE's glad through registers; `DM_GL_STUBS=1` names a missing one at its first call); its 35 shaders are GLSL that LÖVE puts together at run time, captured by the NSP script on the Mac (profile `gl_capture.tsv`, `capture_shaders`), with `bool` uniforms keeping their type (`gl_shaders.py`); it opens the audio renderer without an event, which started no render thread before (`hle_audren.c` `ar_open`: it was silent); and it plays by touch in handheld mode (profile keys `op_mode handheld`, `pad_layout touch`: the iPhone gamepad's Tap layout sends every touch to the game). Any Lua error makes it quit, and love-nx then crashes in its video worker's teardown (`main+0x339c00`): look for the Lua error first. ROMANCE OF THE THREE KINGDOMS 8 REMAKE is Koei Tecmo's KTGL on SDK 17.5.3, with a newer RDB than Age of Calamity's: `.fdata` files (a `PDRK` header, then `IDRK` entries) whose entries are LZ4 or zlib in 16 KB chunks of a new form (`shader_split.py` `idrk_data`: flag 0x400000, LZ4 with 0x100000 too), 59,363 shaders in all; its update is a multi-program patch that carries a whole second program (`…0001`, started with `nn::oe::ExecuteProgram(1)`) beside the game's, so `nx_extract` takes program index 0's NCAs (it took the second program and failed); SDK 17.5.3's `OpenAudioRenderer` with an event calls the form without one through the PLT, which the host's hook now passes straight to the SDK (`hle_audren.c` `t_in_open`); it plays at 30 fps with a controller (it reads a USB mouse, not the touch screen). Taiko Risshiden V DX is KTGL on SDK 12.3.3, mostly 2D, in Japanese and Chinese only (the NSP script packs Japanese): its 212 shaders are GLSLC outputs in `main` and one G2S container (`eff/KTGLEffect.g1s`), read as before; it needed `nn::oe::SetCpuOverclockEnabled` (`hle_oe.c`: its first boot crashed in apm); it plays by touch in handheld mode (profile keys `op_mode handheld`, `pad_layout touch`), taking its taps, drags and flicks only from `nn::hid::GetGestureStates`, which the host now recognizes from the touch points for every game (`hle_touch.c` `gesture_sample`, yuzu's rules plus an 8 px slop; unit test `t_gesture`; the `DM_CTL` line `drag` tests pans on the Mac); and its frame end slept in 2 ms rounds until 1/60 s had passed, which ended at 18.2 ms (55 fps), so a build cut skips that wait and the presents hold 60 (its `patches.py`). Super Smash Bros. Ultimate is Bandai Namco / Sora's engine on Catherine: Full Body's SDK 8.2.1 `sdk` build: everything is in one `data.arc` of Hash40-named zstd files (`dm/gfx/tools/smash_arc.py`; the split reads its current files, 35,012 shaders); its fighters' code is 98 NROs in that archive, loaded and unloaded per battle with `nn::ro::LoadModule`, which the NSP script collects by the SHA-256s its NRRs list and rewrites (`dm/tools/nro_collect.py`), the host loads by the image's hash and binds `main`'s `lua2cpp` imports to (`hle_ro.c`, `loader.c` "NRO modules"), and the iOS app carries packed into three sections of the executable (`gen_embed.py`, `loader.c` `nro_pieces`); its engine reserves 62 GB of address space, cut to 4 GB in its `patches.py` with the SDK's node area and 1 GB alignment cut on that `sdk` build (`sdk_patches.py`) for the 5 GB guest layout; and it fetches `nvnSetExternalDebuggerEnabledNVX`, a no-op. Bayonetta 3 is PlatinumGames' engine: everything in PKZ archives of DAT archives whose entries are Oodle Kraken, which the shader split decodes with the game's own streaming decoder (`main` has no `OodleLZ_Decompress`, so `hle_oodle.c` drives `OodleLZDecoder_*`), its shaders the engine's own shader objects (`shader_split.py` `pg_shader`); the engine refuses shader code newer than the driver reports, so the NVN layer's newest GPU code version follows the SDK (`hle_nvn.c`, 1.16 from SDK 13). Advance Wars 1+2: Re-Boot Camp is Unity 2020.2 IL2CPP on The Great Ace Attorney Chronicles' SDK 10.4.1 `sdk` build, which takes the node-area and 1 GB alignment cuts (`sdk_patches.py`) for its virtual address memory, with a 2 GB pool (the heap check's 1 GB ran its malloc dry at the first loading screen, and Unity's GPU pool allocation then spun for good); its Bink 2 movies draw with 32 shaders whose control sections and code areas lie loose in `main`, paired by data records or by the code that builds their addresses (`shader_split.py` `raw_shaders`; every movie drew white without them). Pokémon Sword is Game Freak's engine before Trinity, on Super Mario Odyssey's SDK 7.3.2 `sdk` and movie builds: its shaders are BNSH entries of GFPAK archives (LZ4, `shader_split.py` `gfpak_members`) and Silicon Studio's YEBIS post effects, a `.tfxo` file in a zlib stream in `main` (`tfxo_streams`); its G-buffer writes float and integer targets at once, which takes a pixel shader entry point that returns only the integer outputs as integers (`dmsh_build.py` `fs_uint`, `main0_m`; `nvn_mtl.m` `pso_mixed_uint`), its cube views of fewer than 6 layers count layers in cubes (`tex_by_id`), and it writes beside its packaged textures in host pages they share, which no longer re-uploads them when the texture's own bytes are unchanged (`nvn_mtl.m` `pkg_edges_clean`; frames went from 33 to 75 ms without it); it asks for a Poké Ball Plus (Palma, `hle_hid.c`) and the Let's Go play statistics (`hle_offline.c`), both answered as absent. Pikmin 4 is Unreal Engine 4.26.2 with IoStore (its shaders LZ4 in the pak's shader code archives, as DRAGON QUEST VII Reimagined's) and Wwise: its allocator is replaced as DRAGON QUEST VII Reimagined's (`hle_uemalloc.c` layout `UE4_27`), but this build reserves its engine region only when `-SwitchVirtualAddressSpaceSize=` is absent, so a cut in its `patches.py` lowers the 62 GB default to 4064 MB instead of `game_args`; the rewriter now re-encodes an `adrp` inside an exclusive window (`window_adrp`) and accepts a gate before a `ret` (`scratch_dead`); and a network request now stays on hold for 50 ms, as Horizon's asynchronous one (`hle_net.c`): answered at once, its BCAT thread could finish before its creator stored "started", and about one boot in six waited at the black loading screen for good. Stardew Valley is MonoGame on Sickhead's BRUTE like Celeste (C# compiled to C++, a Boehm collector) with XACT sound, on SDK 20.5.27: 3,535 of its 3,549 XNB files are compressed (LZ4, 8 LZX), which `shader_split.py` decompresses (`xnb_decompress`) to reach its one content effect beside the 64 shaders in `main`; it draws nearly everything with SpriteBatch (a prewarm list of 2 shaders and 4 pipelines), reads only the pad, and its character creation names the farmer and the farm through the software keyboard, whose Mac text box releases the buttons that opened it (`front_mac.m`, found on this game); its profile uses the 3D pad layout (the D-pad in menus, the right stick for the cursor), and it needed no other host change. BALL x PIT is Unity 6 (6000.0.62f1) IL2CPP with FMOD and Rewired, as Hollow Knight: Silksong: it needed no host change, only the SDK's address-region node area cut on its SDK 20.5.19 `sdk` build (`sdk_patches.py`); its loose serialized files have no type trees and borrow the `Shader` tree its bundles carry, and it draws 1280x720 into 1920x1080 window textures with a window crop (a Mac shot shows the crop only with `DM_NVN_SHOT_OUT`); it plays docked with the 3D pad layout (the right stick aims). Mario vs. Donkey Kong is Nintendo's sead / agl / gsys engine on SDK 15.3.0, its base game a cartridge dump (.xci), its cutscenes MP4 files (H.264 and AAC) through the SDK's movie library and an AudioOut of its own: its movie player keeps the outputs it holds in a ring of 32 per track with no bounds check, so AAC movie decoders offer 32 outputs (Vorbis keeps 64), and it sizes its sound buffers by `GetOutputBufferSize` and appends each whole, so an AAC decoder reports one frame (`hle_movie.c`: with 64 outputs the opening movie overran the heap, with the 128 KB answer it froze); it skips clears under render conditions (profile key `render_cond`), sets the advanced blend mode SRC_OVER, which the replay now blends with the Porter-Duff factors it amounts to (`nvn_mtl.m` `adv_blend`), and plays docked with the 2D pad layout. Bayonetta 2 is PlatinumGames' engine in its Wii U form on SDK 3.6.0, the oldest SDK so far, which needed no host change of its own: its files are DAT archives in CRI CPK archives (CRILAYLA-compressed entries, `dm/gfx/tools/cpk.py`, which also reads the masked @UTF tables of Unicorn Overlord's CPKs), its 1,856 shaders BNSH files of one stage each in the shader DATs, which the split decodes from every CPK entry (`shader_split.py` `cpk_jobs`); a cleared attachment larger than the render pass is now cleared in a pass of its own, as NVN clears the whole target (`nvn_mtl.m` `rp_begin_ex_`; the opening narration drew in a corner of a black screen), and `Downsample` of a single-sample texture is a filtered scaling copy that may convert the format (its bloom chain, `copy_t2t`); it plays docked with the 3D pad layout (the camera is on the right stick). Bayonetta is the same engine on Bayonetta 2's `sdk` and `subsdk0` builds and needed no host change: nine CPK archives, its 458 shaders in `shader.dat` of `data00.cpk`, CRI ADX2 sound, the 3D pad layout; its prologue tutorial waits on a Witch Time page until a dodge lands right before the strike (the work folder's `run/witch.py`). [README.md](README.md) is the player-facing page (games, packing, playing); [docs/development.md](docs/development.md) has the internals, the script's options, building by hand, prewarm lists and per-game notes. - Each game's constants and shader tables form a game profile in `dm/games//`, where `` is the base game's title ID: `game.tsv` plus the tables (and `patches.py` when the rewriter has patches for its builds). Mario's profile is `010015100B514000`. Tools pick the profile with `DM_GAME`; `make -C dm/host` and `build_ipa.sh` pick it with `GAME`. There is no default game: set it every time (the tools stop and list the profiles otherwise). Put per-game values in the profile, not in code ([dm/games/README.md](dm/games/README.md)). - Prefer general optimizations and fixes to game-specific rules. Performance work (frame pacing, power, caches, load times) counts here as much as correctness. First look for a change that holds for every game: Horizon / NVN / Vulkan semantics, or what the binary, its SDK version, its imports or its files show. Use a game-specific rule (a profile key, a rewriter cut, a build-ID gate, a per-game branch in the host) only when it is absolutely necessary, that is, when no general rule can do it. - Per-build knowledge is keyed by the NSO build ID: rewriter cuts, observation gates and frame-step stubs in the profile's `patches.py` (a game's own modules) or `dm/tools/sdk_patches.py` (Nintendo's `sdk` modules, which several games ship), which `dm/tools/patch_nso.py` (the general rewriter) loads, the profile's `build` rows (the builds the game was brought up on, and their display versions; the NSP script packs any other version from a derived profile, without those builds' fixes), and host behaviour that uses fixed module addresses checks `module_t.build_id` (from `fixups.tsv`; `dm_main_build()`). When a new game build appears, carry addresses over with `dm/tools/nso_fnmap.py` and check them by disassembly; never let fixed addresses run on a build they were not found in. diff --git a/README.md b/README.md index 205a216..0312926 100644 --- a/README.md +++ b/README.md @@ -63,66 +63,67 @@ Under each game: the IPA's size, and "60 fps with 1.2.0" where the game runs at BALL x PIT
BALL x PIT
~1.1 GB +Bayonetta
Bayonetta
~8.8 GB Bayonetta 2
Bayonetta 2
~12.5 GB Bayonetta 3
Bayonetta 3
~14.2 GB -Big Brain Academy: Brain vs. Brain
Big Brain Academy: Brain vs. Brain
~0.8 GB +Big Brain Academy: Brain vs. Brain
Big Brain Academy: Brain vs. Brain
~0.8 GB Brain Memory Training Academy
Brain Memory Training Academy
~0.1 GB Captain Toad: Treasure Tracker
Captain Toad: Treasure Tracker
~2 GB -Catherine: Full Body
Catherine: Full Body
~14 GB +Catherine: Full Body
Catherine: Full Body
~14 GB Celeste
Celeste
~0.9 GB Cuphead
Cuphead
~5 GB -DARK SOULS: REMASTERED
DARK SOULS: REMASTERED
~4 GB · 60 fps with 1.0.3 +DARK SOULS: REMASTERED
DARK SOULS: REMASTERED
~4 GB · 60 fps with 1.0.3 Digimon Story Cyber Sleuth: Complete Edition
Digimon Story Cyber Sleuth: Complete Edition
~5 GB DRAGON QUEST VII Reimagined
DRAGON QUEST VII Reimagined
~5.9 GB -DRAGON QUEST XI S: Echoes of an Elusive Age – Definitive Edition
DRAGON QUEST XI S: Echoes of an Elusive Age – Definitive Edition
~15 GB · 60 fps with 1.0.4 +DRAGON QUEST XI S: Echoes of an Elusive Age – Definitive Edition
DRAGON QUEST XI S: Echoes of an Elusive Age – Definitive Edition
~15 GB · 60 fps with 1.0.4 FINAL FANTASY RESONANCE
FINAL FANTASY RESONANCE
~10 GB · 60 fps with 1.0.1 FINAL FANTASY TACTICS - The Ivalice Chronicles
FINAL FANTASY TACTICS - The Ivalice Chronicles
~11 GB -Fire Emblem Engage
Fire Emblem Engage
~15 GB · 60 fps with 2.0.0 +Fire Emblem Engage
Fire Emblem Engage
~15 GB · 60 fps with 2.0.0 Fire Emblem: Three Houses
Fire Emblem: Three Houses
~13 GB · 60 fps with 1.2.0 The Great Ace Attorney Chronicles
The Great Ace Attorney Chronicles
~4 GB -Hades
Hades
~4 GB +Hades
Hades
~4 GB Hades II
Hades II
~4 GB Hollow Knight: Silksong
Hollow Knight: Silksong
~6.4 GB -Hyrule Warriors: Age of Calamity
Hyrule Warriors: Age of Calamity
~15 GB · 60 fps with 1.3.0 +Hyrule Warriors: Age of Calamity
Hyrule Warriors: Age of Calamity
~15 GB · 60 fps with 1.3.0 Luigi's Mansion 3
Luigi's Mansion 3
~7.5 GB · 60 fps with 1.4.0 Metroid Dread
Metroid Dread
~5 GB -Monster Hunter Rise
Monster Hunter Rise
~22 GB · 60 fps with 16.0.2 +Monster Hunter Rise
Monster Hunter Rise
~22 GB · 60 fps with 16.0.2 Monster Train 2
Monster Train 2
~1.6 GB · 60 fps with 1.1.1 Octopath Traveler 0
Octopath Traveler 0
~4 GB · 60 fps with 1.0.5 -Patrick's Parabox
Patrick's Parabox
~0.2 GB +Patrick's Parabox
Patrick's Parabox
~0.2 GB Pikmin 4
Pikmin 4
~10.8 GB Pokémon Legends: Z-A
Pokémon Legends: Z-A
~6 GB -Pokémon Sword
Pokémon Sword
~12.4 GB +Pokémon Sword
Pokémon Sword
~12.4 GB Raging Loop
Raging Loop
~0.9 GB Rhythm Heaven Groove
Rhythm Heaven Groove
~3 GB -ROMANCE OF THE THREE KINGDOMS 8 REMAKE
ROMANCE OF THE THREE KINGDOMS 8 REMAKE
~16.8 GB · controller only +ROMANCE OF THE THREE KINGDOMS 8 REMAKE
ROMANCE OF THE THREE KINGDOMS 8 REMAKE
~16.8 GB · controller only Stardew Valley
Stardew Valley
~0.6 GB STEINS;GATE RE:BOOT
STEINS;GATE RE:BOOT
~6 GB -Super Smash Bros. Ultimate
Super Smash Bros. Ultimate
~17.5 GB · offline +Super Smash Bros. Ultimate
Super Smash Bros. Ultimate
~17.5 GB · offline Taiko Risshiden V DX
Taiko Risshiden V DX
~3.3 GB · Japanese · played by touch Unicorn Overlord
Unicorn Overlord
~4 GB diff --git a/dm/games/010076F0049A2000/bf_want.tsv b/dm/games/010076F0049A2000/bf_want.tsv new file mode 100644 index 0000000..54caeb8 --- /dev/null +++ b/dm/games/010076F0049A2000/bf_want.tsv @@ -0,0 +1 @@ +# generated diff --git a/dm/games/010076F0049A2000/game.tsv b/dm/games/010076F0049A2000/game.tsv new file mode 100644 index 0000000..99b24ee --- /dev/null +++ b/dm/games/010076F0049A2000/game.tsv @@ -0,0 +1,44 @@ +# Game profile of Bayonetta (Switch, update v65536 = 1.1; English, Japanese, French, German, Spanish, Italian, Korean, Simplified and Traditional Chinese) +# Format: see dm/games/README.md +# PlatinumGames' own engine in its Wii U form on NVN, SDK 3.6.0, as Bayonetta 2 (the same sdk and subsdk0 builds). Modules main + subsdk0 (NVN's GLSLC, which main imports) + sdk; CRI's file +# system (CPK), ADX2 sound (se/ and bgm/: .acf / .awb) and Sofdec movies (USM), all decoded by the game's own code. +# RomFS: nine CRI CPK archives (data00.cpk …, 4.25 GB) holding PlatinumGames DAT archives, beside the USM movies (movie/) and the sound. The shaders are BNSH files, one stage each ('.vso' / +# '.pso' members of shader.dat in data00.cpk; shader_split.py cpk_jobs, cpk.py) + +# ---- Identity ---- +title_id 010076F0049A2000 +program_id 010076F0049A2000 + +# ---- App ---- +# Game name: only a label for profile listings and the Mac window title; the iOS app name is the game name in the base NSP, and the bundle ID comes from the base game title ID (build_ipa.sh / NSP script) +name Bayonetta +ipa Bayonetta.ipa +app_category public.app-category.action-games +# full: the camera is on the right stick +pad_layout full + +# ---- Versions ---- +build v65536 1.1 main=1f4a4708615f76f7cad4f12b5c417806 subsdk0=a82aa14c5d5a359ad04dc4eab9f5d590 sdk=8ceabb1750539c3874cc9fab45cab335 +package v65536 +shader_versions v65536 + +# ---- Files ---- +# load order as on Horizon: main, subsdk*, sdk (subsdk0 = GLSLC) +modules main subsdk0 sdk +romfs_marker data00.cpk +zip_store .awb:.cpk:.usm:.metallib + +# ---- Memory ---- +# The NPDM declares no system resource (META +0x14 = 0): nninitStartup sets a heap of the pool − used memory. The 4 GB block of the other games without virtual address memory +# (256 MB in front + 256 MB alias region + 256 MB stack region + 3.25 GB heap region) +mem_reserve 0x100000000 +mem_alias 0x10000000 +mem_stack 0x10000000 +app_pool 0xCD500000 +sys_resource 0x0 +# the rewritten modules are larger than the default 64 MB of used memory (the game's SetHeapSize asks for pool − used) +mem_used 0x6600000 + +# ---- Shader split (shader_split.py; the BNSH files in data00.cpk) ---- +shader_groups /shader.dat/=core +shader_note Bayonetta shaders diff --git a/dm/games/010076F0049A2000/pso_manifest.tsv b/dm/games/010076F0049A2000/pso_manifest.tsv new file mode 100644 index 0000000..76685ff --- /dev/null +++ b/dm/games/010076F0049A2000/pso_manifest.tsv @@ -0,0 +1,516 @@ +# Prewarm seed list (shipped in the app, next to shader_map.tsv). Rows: Sshader keystage / Rrender pipeline key (pso_skey hex) / Ccompute shader key. +# Recorded on the Mac with prewarm off (DM_PSO_MANIFEST=off DM_PSO_RECORD) from an empty save: boot, the opening movie, the title, a new game (Normal), the prologue on the clock tower, +# the graveyard cutscene (skipped), the practice tutorial with Witch Time, then (after a checkpoint load) the graveyard fight of Verse 1 and the next loading screen +S 7a69b305e9f1e87e_b 0 +S 4d1def5067e3f418_b 1 +R 376136396233303565396631653837655f62000000000000346431646566353036376533663431385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000ffffffff00000000100404810400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S cba95afa342cab48_b 0 +S c77248a79009e302_b 1 +R 636261393561666133343263616234385f62000000000000633737323438613739303039653330325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S f98572b00a6f9106_b 0 +S 4710fe2459c1270b_b 1 +R 663938353732623030613666393130365f62000000000000343731306665323435396331323730625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S d36ba65c27bad16d_b 0 +S 4ec1b0239a7ee3d8_b 1 +R 643336626136356332376261643136645f62000000000000346563316230323339613765653364385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 6c12f8f8842ef41a_b 0 +S 703042be592a6047_b 1 +R 366331326638663838343265663431615f62000000000000373033303432626535393261363034375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S cc220b863eb376cb_b 0 +S e823e49428fc4442_b 1 +R 636332323062383633656233373663625f62000000000000653832336534393432386663343434325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000016140000000000002e1c0000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 148727694facf591_b 0 +S 81ca8d54ad85d2e7_b 1 +R 313438373237363934666163663539315f62000000000000383163613864353461643835643265375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S e833be1763c97436_b 1 +S 11b919ba983dbd9f_b 1 +S 959dc56212a65991_b 1 +S 4cb7056e66ea8362_b 1 +R 313438373237363934666163663539315f62000000000000653833336265313736336339373433365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 313438373237363934666163663539315f62000000000000313162393139626139383364626439665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 313438373237363934666163663539315f62000000000000393539646335363231326136353939315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366331326638663838343265663431615f62000000000000346362373035366536366561383336325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366331326638663838343265663431615f62000000000000346362373035366536366561383336325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 07feafbb8e7492a4_b 0 +S f71f034bcf17d8d8_b 1 +R 303766656166626238653734393261345f62000000000000663731663033346263663137643864385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 9282a0bb3b63b3a6_b 0 +S 224e5af2451a31bf_b 1 +R 393238326130626233623633623361365f62000000000000323234653561663234353161333162665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 32629b34df8bb950_b 0 +S 227d1acfeccfa9e1_b 1 +R 333236323962333464663862623935305f62000000000000323237643161636665636366613965315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S ff9d860d9210de83_b 0 +S d533dd93efc546e1_b 1 +R 666639643836306439323130646538335f62000000000000643533336464393365666335343665315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002908000029100000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 313438373237363934666163663539315f62000000000000383163613864353461643835643265375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 663938353732623030613666393130365f62000000000000343731306665323435396331323730625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S d78d92ff9812fc50_b 0 +S 17d3feecff6367bf_b 1 +S f97463f3ab01c21e_b 1 +R 643738643932666639383132666335305f62000000000000313764336665656366663633363762665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 643738643932666639383132666335305f62000000000000663937343633663361623031633231655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 636332323062383633656233373663625f62000000000000653832336534393432386663343434325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000016140000000000002e1c0000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S b0d4cb0f70da6036_b 0 +S abe04da6be42d5cd_b 1 +R 623064346362306637306461363033365f62000000000000616265303464613662653432643563645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S f3a5e9e5c770ec22_b 0 +S f255e2305e9b20f4_b 1 +R 663361356539653563373730656332325f62000000000000663235356532333035653962323066345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 623064346362306637306461363033365f62000000000000616265303464613662653432643563645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 663361356539653563373730656332325f62000000000000663235356532333035653962323066345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 245b1f02bcf6fd39_b 0 +S 228b6179512b688d_b 1 +R 323435623166303262636636666433395f62000000000000323238623631373935313262363838645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366331326638663838343265663431615f62000000000000373033303432626535393261363034375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 643336626136356332376261643136645f62000000000000346563316230323339613765653364385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 8f37ce67d4b7a75a_b 0 +S d344cdb165a39bd0_b 1 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 92c57b6c67ee9e8f_b 0 +S 0c9e9717ac9214eb_b 1 +S c4dd150876c7aee6_b 0 +S 4cae854a51c321ce_b 1 +R 393263353762366336376565396538665f62000000000000306339653937313761633932313465625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000001600000816000010000000002e000018000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000346361653835346135316333323163655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 663938353732623030613666393130365f62000000000000343731306665323435396331323730625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S ef814086f3c86432_b 0 +S 91b717e4be2dbdf3_b 1 +R 656638313430383666336338363433325f62000000000000393162373137653462653264626466335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f0ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 9252918af536128a_b 0 +S 640c8dae2b43da73_b 1 +S 2f22c329d95fc528_b 0 +S 4e2ec070b648c94e_b 1 +R 393235323931386166353336313238615f62000000000000363430633864616532623433646137335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 326632326333323964393566633532385f62000000000000346532656330373062363438633934655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 709ef1cddcba167f_b 1 +R 366331326638663838343265663431615f62000000000000373039656631636464636261313637665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 97964431b24fb547_b 0 +S e53a41421a865044_b 1 +R 393739363434333162323466623534375f62000000000000653533613431343231613836353034345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S de131e6237edf0e8_b 0 +S ab31d75bae32b482_b 1 +R 646531333165363233376564663065385f62000000000000616233316437356261653332623438325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 90cf712834804860_b 0 +S 5c03d59af00b3f0d_b 1 +S 7c9c5c594f20ccee_b 0 +S 5174a832ac6bc3f5_b 1 +S 5e12f474d08d9b09_b 0 +S 83becdaebd721bd1_b 1 +S 32b66d69cc5cd48b_b 0 +S 3eb801c38898ac62_b 1 +S 7c76d001b5786085_b 0 +S 266f2c43ff179f40_b 1 +S 69b239ed8d598c9e_b 0 +S 4fc8519c148ce0a6_b 1 +S 593850450bc94131_b 0 +S 066ea7c379a89098_b 0 +S 8ffb143a7951b0ac_b 0 +S 9619c6cd533186ea_b 0 +S 1ec5a6529dcd332f_b 1 +S 511928958d45f3ee_b 0 +S 4efdf35c80f07808_b 1 +S 43d6db9e9d4373f8_b 0 +S 04866d888425b1fd_b 1 +S 959cc9fb6732f80e_b 0 +S 1577fe4b0137ff48_b 1 +S facb250282463f4b_b 0 +S c66ebc331d5fdcb4_b 1 +S 45e9da0a55ec9844_b 0 +S bd2ab1139f2dee6b_b 1 +S 3fb76128995452d6_b 1 +S 1acecd8d111ddcbb_b 0 +S f64fc0101b9c3ef4_b 1 +S 9cffacc883a44449_b 0 +S 8a176f1325eec151_b 1 +S 1e7bbe75cd7d8a05_b 0 +S 81b19e1368a794db_b 1 +S b44e6a5e95542cfb_b 0 +S 89f054acd0572140_b 1 +R 393063663731323833343830343836305f62000000000000356330336435396166303062336630645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 376339633563353934663230636365655f62000000000000353137346138333261633662633366355f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000271800000000000000000000110c000000000000000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 356531326634373464303864396230395f62000000000000383362656364616562643732316264315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000025180000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 333262363664363963633563643438625f62000000000000336562383031633338383938616336325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 376337366430303162353738363038355f62000000000000323636663263343366663137396634305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 363962323339656438643539386339655f62000000000000346663383531396331343863653061365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353933383530343530626339343133315f62000000000000323237643161636665636366613965315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303636656137633337396138393039385f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f0ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c00002718000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386666623134336137393531623061635f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f0ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393631396336636435333331383665615f62000000000000316563356136353239646364333332665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393063663731323833343830343836305f62000000000000356330336435396166303062336630645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 646531333165363233376564663065385f62000000000000616233316437356261653332623438325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353131393238393538643435663365655f62000000000000346566646633356338306630373830385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 333262363664363963633563643438625f62000000000000336562383031633338383938616336325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 363962323339656438643539386339655f62000000000000346663383531396331343863653061365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 343364366462396539643433373366385f62000000000000303438363664383838343235623166645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393539636339666236373332663830655f62000000000000313537376665346230313337666634385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666163623235303238323436336634625f62000000000000633636656263333331643566646362345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 356531326634373464303864396230395f62000000000000383362656364616562643732316264315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000025180000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 376337366430303162353738363038355f62000000000000323636663263343366663137396634305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 343565396461306135356563393834345f62000000000000626432616231313339663264656536625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393235323931386166353336313238615f62000000000000363430633864616532623433646137335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393631396336636435333331383665615f62000000000000316563356136353239646364333332665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 376337366430303162353738363038355f62000000000000336662373631323839393534353264365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 316163656364386431313164646362625f62000000000000663634666330313031623963336566345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 396366666163633838336134343434395f62000000000000386131373666313332356565633135315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 316537626265373563643764386130355f62000000000000383162313965313336386137393464625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 623434653661356539353534326366625f62000000000000383966303534616364303537323134305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000002500000800000000000000000000000000000000000000000000000000000000200000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353131393238393538643435663365655f62000000000000346566646633356338306630373830385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 323435623166303262636636666433395f62000000000000323238623631373935313262363838645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 3d3b20e4c098ab3e_b 0 +S f37a5d462ed1adfa_b 1 +R 336433623230653463303938616233655f62000000000000663337613564343632656431616466615f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 047db468ebed8715_b 0 +S faec1aa3d1b3b33d_b 1 +S 74228ce2f31dda92_b 0 +S a592bdc47678a568_b 1 +S 01ba962286c32bac_b 0 +S cd2edcb1a4f58393_b 1 +S 1bf5ab2f7faa6302_b 0 +S fd1b983033d18aa1_b 0 +S 210f913b0c097fb0_b 1 +S fe0b594b849c8992_b 0 +S e784178a7c81b9ae_b 1 +R 303437646234363865626564383731355f62000000000000666165633161613364316233623333645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 326632326333323964393566633532385f62000000000000346532656330373062363438633934655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 373432323863653266333164646139325f62000000000000613539326264633437363738613536385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303162613936323238366333326261635f62000000000000636432656463623161346635383339335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 316266356162326637666161363330325f62000000000000323237643161636665636366613965315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666431623938333033336431386161315f62000000000000323130663931336230633039376662305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666530623539346238343963383939325f62000000000000653738343137386137633831623961655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 623064346362306637306461363033365f62000000000000616265303464613662653432643563645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 875ae9ebb857c50d_b 1 +R 663361356539653563373730656332325f62000000000000663235356532333035653962323066345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 663361356539653563373730656332325f62000000000000383735616539656262383537633530645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000016140000000000002e1c0000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366331326638663838343265663431615f62000000000000373039656631636464636261313637665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 656638313430383666336338363433325f62000000000000393162373137653462653264626466335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f0ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303636656137633337396138393039385f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f0ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c00002718000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386666623134336137393531623061635f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f0ffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393235323931386166353336313238615f62000000000000363430633864616532623433646137335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 336433623230653463303938616233655f62000000000000663337613564343632656431616466615f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303437646234363865626564383731355f62000000000000666165633161613364316233623333645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 326632326333323964393566633532385f62000000000000346532656330373062363438633934655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393063663731323833343830343836305f62000000000000356330336435396166303062336630645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 646531333165363233376564663065385f62000000000000616233316437356261653332623438325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 333262363664363963633563643438625f62000000000000336562383031633338383938616336325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 363962323339656438643539386339655f62000000000000346663383531396331343863653061365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 373432323863653266333164646139325f62000000000000613539326264633437363738613536385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393631396336636435333331383665615f62000000000000316563356136353239646364333332665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303162613936323238366333326261635f62000000000000636432656463623161346635383339335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 356531326634373464303864396230395f62000000000000383362656364616562643732316264315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000025180000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 93eb9fb67542b2cf_b 0 +S dd2d9524c43b9dd9_b 1 +R 393365623966623637353432623263665f62000000000000646432643935323463343362396464395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 4e290eacda0b7c93_b 0 +R 346532393065616364613062376339335f62000000000000323130663931336230633039376662305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 346532393065616364613062376339335f62000000000000323130663931336230633039376662305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393631396336636435333331383665615f62000000000000316563356136353239646364333332665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 326632326333323964393566633532385f62000000000000346532656330373062363438633934655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 623434653661356539353534326366625f62000000000000383966303534616364303537323134305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000002500000800000000000000000000000000000000000000000000000000000000200000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S d54358a10ad6ab8c_b 0 +S 1e21061b02d00058_b 1 +R 643534333538613130616436616238635f62000000000000316532313036316230326430303035385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000346361653835346135316333323163655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 3060d39ac026f8b0_b 0 +S bc277ddab4db4e06_b 1 +R 333036306433396163303236663862305f62000000000000626332373764646162346462346530365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000001600000800000000000000002e000010000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S a89c44da3b17a4f0_b 1 +R 633464643135303837366337616565365f62000000000000613839633434646133623137613466305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393263353762366336376565396538665f62000000000000306339653937313761633932313465625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000001600000816000010000000002e000018000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 1c9af3e69c05e98d_b 0 +S 7e4587acf4bbfb57_b 1 +R 316339616633653639633035653938645f62000000000000376534353837616366346262666235375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 343565396461306135356563393834345f62000000000000626432616231313339663264656536625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393235323931386166353336313238615f62000000000000363430633864616532623433646137335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393631396336636435333331383665615f62000000000000316563356136353239646364333332665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 6c463c05fd669597_b 1 +R 633464643135303837366337616565365f62000000000000366334363363303566643636393539375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S f857c5d7de3135af_b 0 +S 3c86732613406cb8_b 1 +R 663835376335643764653331333561665f62000000000000336338363733323631333430366362385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002e000008000000000000000000000000000000000000000000000000000000000c0000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 663835376335643764653331333561665f62000000000000336338363733323631333430366362385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002e000008000000000000000000000000000000000000000000000000000000000c0000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 623434653661356539353534326366625f62000000000000383966303534616364303537323134305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000002500000800000000000000000000000000000000000000000000000000000000200000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 5cd52749c28b29ae_b 1 +R 633464643135303837366337616565365f62000000000000356364353237343963323862323961655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000346361653835346135316333323163655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 663835376335643764653331333561665f62000000000000336338363733323631333430366362385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002e000008000000000000000000000000000000000000000000000000000000000c0000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S fb88085c4dc25cbd_b 0 +S 8bfdeb8897863701_b 1 +R 666238383038356334646332356362645f62000000000000386266646562383839373836333730315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393739363434333162323466623534375f62000000000000653533613431343231613836353034345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666238383038356334646332356362645f62000000000000386266646562383839373836333730315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S c2937820dcb0d856_b 1 +R 633464643135303837366337616565365f62000000000000633239333738323064636230643835365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000356364353237343963323862323961655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000346361653835346135316333323163655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 0af4b5ac10698d84_b 0 +S 95fa0376989f555c_b 1 +R 306166346235616331303639386438345f62000000000000393566613033373639383966353535635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S f8e98ee63eae9432_b 0 +R 663865393865653633656165393433325f62000000000000643533336464393365666335343665315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000002908000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 03001c0d5eadefda_b 0 +S ee499bd3ccf5df0c_b 1 +R 303330303163306435656164656664615f62000000000000656534393962643363636635646630635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 616092eb4717be16_b 0 +S 783390005eb62619_b 1 +R 363136303932656234373137626531365f62000000000000373833333930303035656236323631395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 44a9a73327a99e1c_b 0 +S 9f432dbf54f80093_b 1 +R 343461396137333332376139396531635f62000000000000396634333264626635346638303039335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393739363434333162323466623534375f62000000000000653533613431343231613836353034345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000366334363363303566643636393539375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 343461396137333332376139396531635f62000000000000396634333264626635346638303039335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000346361653835346135316333323163655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000346361653835346135316333323163655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S b0ff8ff51adb3b9d_b 0 +S 47f6e1e71463ee64_b 1 +R 623066663866663531616462336239645f62000000000000343766366531653731343633656536345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff00000000100804820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S faac9c4f6ec101f7_b 0 +S bdae9120f16b1b3c_b 1 +S 4b67a308fcd24927_b 0 +S 05ccbc425dcef69c_b 1 +S 525655b6b64df147_b 0 +S 4c788a7c901e4ce9_b 1 +S c5eadd0eac75350d_b 0 +S 058b1fed54215669_b 1 +S dbb5e6bb59e4d023_b 0 +S f76f7d85b01a61ba_b 1 +R 623066663866663531616462336239645f62000000000000343766366531653731343633656536345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff00000000100804820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366331326638663838343265663431615f62000000000000373039656631636464636261313637665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000010080482040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 656638313430383666336338363433325f62000000000000393162373137653462653264626466335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f0ffffff000000001008048204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666161633963346636656331303166375f62000000000000626461653931323066313662316233635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff000000001008048204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 346236376133303866636432343932375f62000000000000303563636263343235646365663639635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff000000001008048204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366331326638663838343265663431615f62000000000000346362373035366536366561383336325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000010080482040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353235363535623662363464663134375f62000000000000346337383861376339303165346365395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303636656137633337396138393039385f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f0ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c00002718000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386666623134336137393531623061635f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f0ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633565616464306561633735333530645f62000000000000303538623166656435343231353636395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff00000000080c0283040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393235323931386166353336313238615f62000000000000363430633864616532623433646137335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 646262356536626235396534643032335f62000000000000663736663764383562303161363162615f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S dca3421e3bfac452_b 0 +S f96576ed7a15d1e1_b 1 +R 646361333432316533626661633435325f62000000000000663936353736656437613135643165315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 363136303932656234373137626531365f62000000000000373833333930303035656236323631395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 3a71fbef505365ec_b 0 +S 93ecb4f4cbd35a33_b 1 +S a2aac2737debf57c_b 0 +S bfa37a964b86fd52_b 1 +S 5107cc005b94fbe5_b 0 +S 9585e48a2d590659_b 0 +S 4743d3786320a4fd_b 1 +S 7bffd55646a221b2_b 0 +S 01d96b5a91113501_b 1 +S a0fc6d681e5c79e7_b 0 +S 9050ccbbe0ae4bf3_b 1 +S a40a31c8fb6e1a81_b 0 +S 5c7886f7898c158f_b 1 +S d7dcf96fa96b102d_b 1 +R 336137316662656635303533363565635f62000000000000393365636234663463626433356133335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 343364366462396539643433373366385f62000000000000303438363664383838343235623166645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 376337366430303162353738363038355f62000000000000336662373631323839393534353264365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 613261616332373337646562663537635f62000000000000626661333761393634623836666435325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353130376363303035623934666265355f62000000000000616233316437356261653332623438325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393538356534386132643539303635395f62000000000000343734336433373836333230613466645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 356531326634373464303864396230395f62000000000000383362656364616562643732316264315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c000000000000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 376266666435353634366132323162325f62000000000000303164393662356139313131333530315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 613066633664363831653563373965375f62000000000000393035306363626265306165346266335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 613430613331633866623665316138315f62000000000000303164393662356139313131333530315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 643534333538613130616436616238635f62000000000000316532313036316230326430303035385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386666623134336137393531623061635f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f0ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666161633963346636656331303166375f62000000000000626461653931323066313662316233635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 363136303932656234373137626531365f62000000000000373833333930303035656236323631395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353130376363303035623934666265355f62000000000000616233316437356261653332623438325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393538356534386132643539303635395f62000000000000343734336433373836333230613466645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 356531326634373464303864396230395f62000000000000383362656364616562643732316264315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c000000000000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 376266666435353634366132323162325f62000000000000303164393662356139313131333530315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 613430613331633866623665316138315f62000000000000303164393662356139313131333530315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 376337366430303162353738363038355f62000000000000336662373631323839393534353264365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 613261616332373337646562663537635f62000000000000626661333761393634623836666435325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000346361653835346135316333323163655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff000000004818128604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 646262356536626235396534643032335f62000000000000356337383836663738393863313538665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000643764636639366661393662313032645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386666623134336137393531623061635f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f0ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666161633963346636656331303166375f62000000000000626461653931323066313662316233635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366331326638663838343265663431615f62000000000000346362373035366536366561383336325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386666623134336137393531623061635f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f0ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386666623134336137393531623061635f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f0ffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303636656137633337396138393039385f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f0ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c00002718000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666161633963346636656331303166375f62000000000000626461653931323066313662316233635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S f7a5da63693f79b6_b 0 +S 3dd47409ede7c0b2_b 1 +R 663761356461363336393366373962365f62000000000000336464343734303965646537633062325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S cba3eebab875945f_b 0 +S dd4d1fcfc605f34b_b 1 +R 636261336565626162383735393435665f62000000000000646434643166636663363035663334625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 316163656364386431313164646362625f62000000000000663634666330313031623963336566345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386666623134336137393531623061635f620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f0ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 166be69f5b7744a4_b 0 +S 5957f85f9a219408_b 1 +S d79c559df6b00dfe_b 0 +S ee2baa2cecbc5d7c_b 1 +S 675bb75eb73838e3_b 0 +S 7cf74b2b6504f3de_b 1 +S 1fc8d61711850bb7_b 0 +S c47d39c04d2d3f80_b 0 +S ba0a1e15e21a5646_b 1 +R 343565396461306135356563393834345f62000000000000626432616231313339663264656536625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 313636626536396635623737343461345f62000000000000353935376638356639613231393430385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 643739633535396466366230306466655f62000000000000656532626161326365636263356437635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 363735626237356562373338333865335f62000000000000376366373462326236353034663364655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 316663386436313731313835306262375f62000000000000383362656364616562643732316264315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 323435623166303262636636666433395f62000000000000323238623631373935313262363838645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633437643339633034643264336638305f62000000000000626130613165313565323161353634365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000001600000816000010000000002e000018000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 346236376133303866636432343932375f62000000000000303563636263343235646365663639635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S cf385dbbbb48fb2c_b 0 +S a3b8dfea6ff43ca5_b 1 +S 0661011e99872c6d_b 0 +S 37abc9e0fe103aae_b 1 +R 636633383564626262623438666232635f62000000000000613362386466656136666634336361355f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000002500000800000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303636313031316539393837326336645f62000000000000333761626339653066653130336161655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 8cfdfc4ac3475f32_b 1 +R 323435623166303262636636666433395f62000000000000386366646663346163333437356633325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S c85d702b2b60b0e4_b 0 +S 50e0413a0fa41b77_b 1 +R 633835643730326232623630623065345f62000000000000353065303431336130666134316237375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000001600000816000010000000002e000018000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633437643339633034643264336638305f62000000000000626130613165313565323161353634365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000001600000816000010000000002e000018000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 316339616633653639633035653938645f62000000000000376534353837616366346262666235375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 4ba26bb5ff781f61_b 0 +S e7f0b6d4dbd9ebd6_b 1 +R 346261323662623566663738316636315f62000000000000653766306236643464626439656264365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 1d4020e3d7fb78e1_b 1 +R 636332323062383633656233373663625f62000000000000316434303230653364376662373865315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000016140000000000002e1c0000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 363962323339656438643539386339655f62000000000000346663383531396331343863653061365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 0201993c61178ca8_b 0 +S 1c7ebd7c0e56304f_b 1 +S ee82d340fbaeb713_b 0 +S 3c1b02398d2c7584_b 1 +S 83a1db8352b4c871_b 0 +S bb3c0c51bf5be3e0_b 0 +S bb60e07aba1bf260_b 1 +S 507db0935481f749_b 0 +S 70ad6cc87918b629_b 1 +S bde478370d19103d_b 0 +S 652f0fed1d7b5214_b 1 +S b657fee141e64be1_b 0 +S 996c731503f33a0c_b 1 +R 623434653661356539353534326366625f62000000000000383966303534616364303537323134305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800000000000000000000110c000000000000000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303230313939336336313137386361385f62000000000000316337656264376330653536333034665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 313636626536396635623737343461345f62000000000000353935376638356639613231393430385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 343565396461306135356563393834345f62000000000000626432616231313339663264656536625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 656538326433343066626165623731335f62000000000000336331623032333938643263373538345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 383361316462383335326234633837315f62000000000000353137346138333261633662633366355f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000025180000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 383361316462383335326234633837315f62000000000000353137346138333261633662633366355f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c000000000000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 626233633063353162663562653365305f62000000000000626236306530376162613162663236305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 336433623230653463303938616233655f62000000000000663337613564343632656431616466615f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 326632326333323964393566633532385f62000000000000346532656330373062363438633934655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303437646234363865626564383731355f62000000000000666165633161613364316233623333645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 373432323863653266333164646139325f62000000000000613539326264633437363738613536385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303162613936323238366333326261635f62000000000000636432656463623161346635383339335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 636633383564626262623438666232635f62000000000000613362386466656136666634336361355f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000002500000800000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 346532393065616364613062376339335f62000000000000323130663931336230633039376662305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666530623539346238343963383939325f62000000000000653738343137386137633831623961655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303636313031316539393837326336645f62000000000000333761626339653066653130336161655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353037646230393335343831663734395f62000000000000373061643663633837393138623632395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 363962323339656438643539386339655f62000000000000346663383531396331343863653061365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 383361316462383335326234633837315f62000000000000353137346138333261633662633366355f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000025180000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 383361316462383335326234633837315f62000000000000353137346138333261633662633366355f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c000000000000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303230313939336336313137386361385f62000000000000316337656264376330653536333034665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 656538326433343066626165623731335f62000000000000336331623032333938643263373538345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 626465343738333730643139313033645f62000000000000376366373462326236353034663364655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353037646230393335343831663734395f62000000000000373061643663633837393138623632395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 336433623230653463303938616233655f62000000000000663337613564343632656431616466615f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303437646234363865626564383731355f62000000000000666165633161613364316233623333645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 373432323863653266333164646139325f62000000000000613539326264633437363738613536385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303162613936323238366333326261635f62000000000000636432656463623161346635383339335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303330303163306435656164656664615f62000000000000656534393962643363636635646630635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 316339616633653639633035653938645f62000000000000363532663066656431643762353231345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 623635376665653134316536346265315f62000000000000393936633733313530336633336130635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069000000000000000000000000000000000000001104000029080000291000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 50cdbda715a49a85_b 0 +S 3cd9ce7ec36718b4_b 1 +R 353063646264613731356134396138355f62000000000000336364396365376563333637313862345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 7c579398f29eccea_b 0 +S 9f7c16e24cb6dc71_b 1 +R 376335373933393866323965636365615f62000000000000396637633136653234636236646337315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 75cbed97040be5da_b 0 +S a0b9d6d15bef7718_b 1 +R 373563626564393730343062653564615f62000000000000613062396436643135626566373731385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S cfd8d768b2c362fc_b 0 +S 842cb2a2a135837e_b 1 +R 636664386437363862326333363266635f62000000000000383432636232613261313335383337655f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 373563626564393730343062653564615f62000000000000613062396436643135626566373731385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 3adf174a57605294_b 0 +S ec84a821bd9623c2_b 1 +R 336164663137346135373630353239345f62000000000000656338346138323162643936323363325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 0ddd8cbee34df6e4_b 0 +S a15444452db01468_b 1 +S 6fda6871302c3d84_b 0 +S 64042d08a32ae5fc_b 1 +S de2a4ee4819097d6_b 0 +S b5d6bc5ba870b680_b 1 +R 306464643863626565333464663665345f62000000000000613135343434343532646230313436385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366664613638373133303263336438345f62000000000000363430343264303861333261653566635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 646532613465653438313930393764365f62000000000000623564366263356261383730623638305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666431623938333033336431386161315f62000000000000323130663931336230633039376662305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 288e9fcfd0b2b2c2_b 0 +R 323838653966636664306232623263325f62000000000000323130663931336230633039376662305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366331326638663838343265663431615f62000000000000373033303432626535393261363034375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a820d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 643336626136356332376261643136645f62000000000000346563316230323339613765653364385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a820d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 323435623166303262636636666433395f62000000000000323238623631373935313262363838645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000048181286040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S 8c1c9b05f7abb189_b 1 +R 633464643135303837366337616565365f62000000000000386331633962303566376162623138395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a82040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000366334363363303566643636393539375f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a86040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000016000008000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393263353762366336376565396538665f62000000000000306339653937313761633932313465625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000001600000816000010000000002e000018000000000000000000000000000000000000000000000000000000000c0000000000000008000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 336164663137346135373630353239345f62000000000000656338346138323162643936323363325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 643739633535396466366230306466655f62000000000000656532626161326365636263356437635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303437646234363865626564383731355f62000000000000666165633161613364316233623333645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 306464643863626565333464663665345f62000000000000613135343434343532646230313436385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366664613638373133303263336438345f62000000000000363430343264303861333261653566635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 646532613465653438313930393764365f62000000000000623564366263356261383730623638305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 373432323863653266333164646139325f62000000000000613539326264633437363738613536385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393365623966623637353432623263665f62000000000000646432643935323463343362396464395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S e086b66d703dd3af_b 1 +R 636332323062383633656233373663625f62000000000000653038366236366437303364643361665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000016140000000000002e1c0000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 346261323662623566663738316636315f62000000000000653766306236643464626439656264365f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303162613936323238366333326261635f62000000000000636432656463623161346635383339335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 633464643135303837366337616565365f62000000000000386331633962303566376162623138395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000ffffffff0000000028080a820d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 636332323062383633656233373663625f62000000000000653832336534393432386663343434325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff00000000481812860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000016140000000000002e1c0000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 663938353732623030613666393130365f62000000000000343731306665323435396331323730625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff00000000481812860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 636332323062383633656233373663625f62000000000000316434303230653364376662373865315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000016140000000000002e1c0000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 623064346362306637306461363033365f62000000000000616265303464613662653432643563645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff000000004818128604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 663361356539653563373730656332325f62000000000000663235356532333035653962323066345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff00000000481812860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000000000000000000002e14000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 386633376365363764346237613735615f62000000000000643334346364623136356133396264305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff000000004818128604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666639643836306439323130646538335f62000000000000643533336464393365666335343665315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002908000029100000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 323435623166303262636636666433395f62000000000000323238623631373935313262363838645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000001100000800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 636332323062383633656233373663625f62000000000000653038366236366437303364643361665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a860400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000016140000000000002e1c0000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 383361316462383335326234633837315f62000000000000353137346138333261633662633366355f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c000000000000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 376266666435353634366132323162325f62000000000000303164393662356139313131333530315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 383361316462383335326234633837315f62000000000000353137346138333261633662633366355f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000025180000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 656538326433343066626165623731335f62000000000000336331623032333938643263373538345f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353130376363303035623934666265355f62000000000000616233316437356261653332623438325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393538356534386132643539303635395f62000000000000343734336433373836333230613466645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 353037646230393335343831663734395f62000000000000373061643663633837393138623632395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000006910000000000000110c0000111c0000000000002518000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 643534333538613130616436616238635f62000000000000316532313036316230326430303035385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a820400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000110c0000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 336164663137346135373630353239345f62000000000000656338346138323162643936323363325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 643739633535396466366230306466655f62000000000000656532626161326365636263356437635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 306464643863626565333464663665345f62000000000000613135343434343532646230313436385f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 366664613638373133303263336438345f62000000000000363430343264303861333261653566635f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 646532613465653438313930393764365f62000000000000623564366263356261383730623638305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 666431623938333033336431386161315f62000000000000323130663931336230633039376662305f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000025140000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393365623966623637353432623263665f62000000000000646432643935323463343362396464395f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 303230313939336336313137386361385f62000000000000316337656264376330653536333034665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000002500000800000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 613430613331633866623665316138315f62000000000000303164393662356139313131333530315f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000f7ffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000000000000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 343565396461306135356563393834345f62000000000000626432616231313339663264656536625f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393235323931386166353336313238615f62000000000000363430633864616532623433646137335f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000011040008000000000000000000000000000000000000000000000000000000000000000025140000200000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 393631396336636435333331383665615f62000000000000316563356136353239646364333332665f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000000000000ffffffff0000000028080a8204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000251c0000271800006910000000000000110c000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +S bedfcb56837fe8d1_b 0 +S a06150e75e2f7ac2_b 1 +R 626564666362353638333766653864315f62000000000000613036313530653735653266376163325f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028180a8604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002908000029100000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +R 663361356539653563373730656332325f62000000000000383735616539656262383537633530645f620000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000004010000040100000100000001000000f7ffffff0000000028080a820d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000160c000016140000000000002e1c0000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/dm/games/010076F0049A2000/shader_facts.tsv b/dm/games/010076F0049A2000/shader_facts.tsv new file mode 100644 index 0000000..e665d36 --- /dev/null +++ b/dm/games/010076F0049A2000/shader_facts.tsv @@ -0,0 +1 @@ +# Answer table for translation queries (generated by dm/gfx/tools/shader_split.py, do not edit): key fact JSON. This game has no PC version to pair with: only the thread group / shared memory of compute shaders (taken from the control section); other queries get the translator defaults diff --git a/dm/games/010076F0049A2000/shader_map.tsv b/dm/games/010076F0049A2000/shader_map.tsv new file mode 100644 index 0000000..ac3aef7 --- /dev/null +++ b/dm/games/010076F0049A2000/shader_map.tsv @@ -0,0 +1,461 @@ +# kind: evidence Bayonetta shaders (BNSH / BAHS in RomFS + main) → control section + code area keys (dm/gfx/tools/shader_split.py) +# column 5 records where each key first appears; this game has no PC version to pair with +package index stage dm_ctl_sha16 source +ps_core.bin 0 pixel 8bfdeb8897863701 /data00.cpk/shader.dat/espshaderalmask.pso/espshaderalmask.psb#BNSH@0x0#var0 +vs_core.bin 0 vertex fb88085c4dc25cbd /data00.cpk/shader.dat/espshaderalmask.vso/espshaderalmask.vsb#BNSH@0x0#var0 +ps_core.bin 1 pixel 9ab4b9251b9448f3 /data00.cpk/shader.dat/espshaderalmaskvc.pso/espshaderalmaskvc.psb#BNSH@0x0#var0 +vs_core.bin 1 vertex 92c57b6c67ee9e8f /data00.cpk/shader.dat/espshaderalmaskvc.vso/espshaderalmaskvc.vsb#BNSH@0x0#var0 +ps_core.bin 2 pixel d344cdb165a39bd0 /data00.cpk/shader.dat/espshaderbase.pso/espshaderbase.psb#BNSH@0x0#var0 +vs_core.bin 2 vertex 8f37ce67d4b7a75a /data00.cpk/shader.dat/espshaderbase.vso/espshaderbase.vsb#BNSH@0x0#var0 +ps_core.bin 3 pixel 95fa0376989f555c /data00.cpk/shader.dat/espshaderbump.pso/espshaderbump.psb#BNSH@0x0#var0 +vs_core.bin 3 vertex 0af4b5ac10698d84 /data00.cpk/shader.dat/espshaderbump.vso/espshaderbump.vsb#BNSH@0x0#var0 +ps_core.bin 4 pixel 16d06d6038b1475d /data00.cpk/shader.dat/espshadercaustics.pso/espshadercaustics.psb#BNSH@0x0#var0 +ps_core.bin 5 pixel 73c8583313ef5491 /data00.cpk/shader.dat/espshaderfalsevolumeparticle.pso/espshaderfalsevolumeparticle.psb#BNSH@0x0#var0 +vs_core.bin 4 vertex 0d5f46f23e1ffd15 /data00.cpk/shader.dat/espshaderfalsevolumeparticle.vso/espshaderfalsevolumeparticle.vsb#BNSH@0x0#var0 +ps_core.bin 6 pixel 335ddf0dd81d5f3f /data00.cpk/shader.dat/espshaderhitcheck.pso/espshaderhitcheck.psb#BNSH@0x0#var0 +vs_core.bin 5 vertex 571345fee83d752f /data00.cpk/shader.dat/espshaderhitcheck.vso/espshaderhitcheck.vsb#BNSH@0x0#var0 +ps_core.bin 7 pixel 3c86732613406cb8 /data00.cpk/shader.dat/espshaderline.pso/espshaderline.psb#BNSH@0x0#var0 +vs_core.bin 6 vertex f857c5d7de3135af /data00.cpk/shader.dat/espshaderline.vso/espshaderline.vsb#BNSH@0x0#var0 +ps_core.bin 8 pixel 4cae854a51c321ce /data00.cpk/shader.dat/espshadermask.pso/espshadermask.psb#BNSH@0x0#var0 +vs_core.bin 7 vertex c4dd150876c7aee6 /data00.cpk/shader.dat/espshadermask.vso/espshadermask.vsb#BNSH@0x0#var0 +ps_core.bin 9 pixel 0c9e9717ac9214eb /data00.cpk/shader.dat/espshadermask2.pso/espshadermask2.psb#BNSH@0x0#var0 +ps_core.bin 10 pixel 8c1c9b05f7abb189 /data00.cpk/shader.dat/espshadermono.pso/espshadermono.psb#BNSH@0x0#var0 +ps_core.bin 11 pixel d7dcf96fa96b102d /data00.cpk/shader.dat/espshadermonomask.pso/espshadermonomask.psb#BNSH@0x0#var0 +vs_core.bin 8 vertex f8e98ee63eae9432 /data00.cpk/shader.dat/espshadermultimoveparticle.vso/espshadermultimoveparticle.vsb#BNSH@0x0#var0 +ps_core.bin 12 pixel 131e617400b6a179 /data00.cpk/shader.dat/espshadermultimoveparticlebillbord.pso/espshadermultimoveparticlebillbord.psb#BNSH@0x0#var0 +vs_core.bin 9 vertex ec7001d6b92fa885 /data00.cpk/shader.dat/espshadermultimoveparticlebillbord.vso/espshadermultimoveparticlebillbord.vsb#BNSH@0x0#var0 +vs_core.bin 10 vertex 134f41f62fb4e150 /data00.cpk/shader.dat/espshadermultimoveparticlecb.vso/espshadermultimoveparticlecb.vsb#BNSH@0x0#var0 +vs_core.bin 11 vertex a1b2571948245560 /data00.cpk/shader.dat/espshadermultimoveparticlecylinder.vso/espshadermultimoveparticlecylinder.vsb#BNSH@0x0#var0 +ps_core.bin 13 pixel 49c184e3a36ce3e3 /data00.cpk/shader.dat/espshadermultimoveparticlewater.pso/espshadermultimoveparticlewater.psb#BNSH@0x0#var0 +vs_core.bin 12 vertex 8d6a5264a6501d63 /data00.cpk/shader.dat/espshadermultimoveparticlewater.vso/espshadermultimoveparticlewater.vsb#BNSH@0x0#var0 +ps_core.bin 14 pixel d533dd93efc546e1 /data00.cpk/shader.dat/espshadermultiparticle.pso/espshadermultiparticle.psb#BNSH@0x0#var0 +vs_core.bin 13 vertex ff9d860d9210de83 /data00.cpk/shader.dat/espshadermultiparticle.vso/espshadermultiparticle.vsb#BNSH@0x0#var0 +ps_core.bin 15 pixel 996c731503f33a0c /data00.cpk/shader.dat/espshadermultiparticle3d.pso/espshadermultiparticle3d.psb#BNSH@0x0#var0 +vs_core.bin 14 vertex b657fee141e64be1 /data00.cpk/shader.dat/espshadermultiparticle3d.vso/espshadermultiparticle3d.vsb#BNSH@0x0#var0 +ps_core.bin 16 pixel 6ddaa2fb835eca76 /data00.cpk/shader.dat/espshadermultiparticlebillbord.pso/espshadermultiparticlebillbord.psb#BNSH@0x0#var0 +vs_core.bin 15 vertex 48e6229b15587b0b /data00.cpk/shader.dat/espshadermultiparticlebillbord.vso/espshadermultiparticlebillbord.vsb#BNSH@0x0#var0 +ps_core.bin 17 pixel a06150e75e2f7ac2 /data00.cpk/shader.dat/espshadermultiparticlewater.pso/espshadermultiparticlewater.psb#BNSH@0x0#var0 +vs_core.bin 16 vertex bedfcb56837fe8d1 /data00.cpk/shader.dat/espshadermultiparticlewater.vso/espshadermultiparticlewater.vsb#BNSH@0x0#var0 +ps_core.bin 18 pixel be9040e821d2358b /data00.cpk/shader.dat/espshaderpointlight.pso/espshaderpointlight.psb#BNSH@0x0#var0 +ps_core.bin 19 pixel 8cfdfc4ac3475f32 /data00.cpk/shader.dat/espshaderpointlight2.pso/espshaderpointlight2.psb#BNSH@0x0#var0 +ps_core.bin 20 pixel c2937820dcb0d856 /data00.cpk/shader.dat/espshaderps.pso/espshaderps.psb#BNSH@0x0#var0 +ps_core.bin 21 pixel cd9ed2ecb7aad89e /data00.cpk/shader.dat/espshaderps_edge.pso/espshaderps_edge.psb#BNSH@0x0#var0 +ps_core.bin 22 pixel be178fa6306d5314 /data00.cpk/shader.dat/espshaderps_edge_mul.pso/espshaderps_edge_mul.psb#BNSH@0x0#var0 +ps_core.bin 23 pixel 5cd52749c28b29ae /data00.cpk/shader.dat/espshaderpsmask.pso/espshaderpsmask.psb#BNSH@0x0#var0 +ps_core.bin 24 pixel a89c44da3b17a4f0 /data00.cpk/shader.dat/espshaderpsmask_edge.pso/espshaderpsmask_edge.psb#BNSH@0x0#var0 +ps_core.bin 25 pixel 6c463c05fd669597 /data00.cpk/shader.dat/espshaderpsmask_edge_mul.pso/espshaderpsmask_edge_mul.psb#BNSH@0x0#var0 +ps_core.bin 26 pixel e53a41421a865044 /data00.cpk/shader.dat/espshadershimmer.pso/espshadershimmer.psb#BNSH@0x0#var0 +vs_core.bin 17 vertex 97964431b24fb547 /data00.cpk/shader.dat/espshadershimmer.vso/espshadershimmer.vsb#BNSH@0x0#var0 +ps_core.bin 27 pixel 50e0413a0fa41b77 /data00.cpk/shader.dat/espshadershimmer2.pso/espshadershimmer2.psb#BNSH@0x0#var0 +vs_core.bin 18 vertex c85d702b2b60b0e4 /data00.cpk/shader.dat/espshadershimmer2.vso/espshadershimmer2.vsb#BNSH@0x0#var0 +ps_core.bin 28 pixel d59bcc2f626c48fe /data00.cpk/shader.dat/espshadershimmerblur.pso/espshadershimmerblur.psb#BNSH@0x0#var0 +ps_core.bin 29 pixel 228b6179512b688d /data00.cpk/shader.dat/espshadersoftpt.pso/espshadersoftpt.psb#BNSH@0x0#var0 +vs_core.bin 19 vertex 245b1f02bcf6fd39 /data00.cpk/shader.dat/espshadersoftpt.vso/espshadersoftpt.vsb#BNSH@0x0#var0 +ps_core.bin 30 pixel 7e4587acf4bbfb57 /data00.cpk/shader.dat/espshadersoftpt3d.pso/espshadersoftpt3d.psb#BNSH@0x0#var0 +vs_core.bin 20 vertex 1c9af3e69c05e98d /data00.cpk/shader.dat/espshadersoftpt3d.vso/espshadersoftpt3d.vsb#BNSH@0x0#var0 +ps_core.bin 31 pixel 652f0fed1d7b5214 /data00.cpk/shader.dat/espshadersoftpt3d_fog.pso/espshadersoftpt3d_fog.psb#BNSH@0x0#var0 +ps_core.bin 32 pixel 8385201d2742e44f /data00.cpk/shader.dat/espshadersoftpt3dmask.pso/espshadersoftpt3dmask.psb#BNSH@0x0#var0 +ps_core.bin 33 pixel ba0a1e15e21a5646 /data00.cpk/shader.dat/espshadersoftpt3dmaskvc.pso/espshadersoftpt3dmaskvc.psb#BNSH@0x0#var0 +vs_core.bin 21 vertex c47d39c04d2d3f80 /data00.cpk/shader.dat/espshadersoftpt3dmaskvc.vso/espshadersoftpt3dmaskvc.vsb#BNSH@0x0#var0 +ps_core.bin 34 pixel 9206d6cfc281c4f5 /data00.cpk/shader.dat/espshadersubfade.pso/espshadersubfade.psb#BNSH@0x0#var0 +vs_core.bin 22 vertex 56d9eb61c3d55107 /data00.cpk/shader.dat/espshadersubfade.vso/espshadersubfade.vsb#BNSH@0x0#var0 +ps_core.bin 35 pixel 0f18c07c6597de28 /data00.cpk/shader.dat/espshadertest.pso/espshadertest.psb#BNSH@0x0#var0 +vs_core.bin 23 vertex 9b4067cf3679157b /data00.cpk/shader.dat/espshadertest.vso/espshadertest.vsb#BNSH@0x0#var0 +ps_core.bin 36 pixel bc277ddab4db4e06 /data00.cpk/shader.dat/espshadertile.pso/espshadertile.psb#BNSH@0x0#var0 +vs_core.bin 24 vertex 3060d39ac026f8b0 /data00.cpk/shader.dat/espshadertile.vso/espshadertile.vsb#BNSH@0x0#var0 +ps_core.bin 37 pixel afe8ca22457309f5 /data00.cpk/shader.dat/espshaderwaterwave.pso/espshaderwaterwave.psb#BNSH@0x0#var0 +vs_core.bin 25 vertex 02aca579c9eb2660 /data00.cpk/shader.dat/espshaderwaterwave.vso/espshaderwaterwave.vsb#BNSH@0x0#var0 +ps_core.bin 38 pixel 3749b823b5f8f032 /data00.cpk/shader.dat/espshaderwavecomp.pso/espshaderwavecomp.psb#BNSH@0x0#var0 +ps_core.bin 39 pixel 89f0f04ce0b69a5e /data00.cpk/shader.dat/espshaderwavedraw.pso/espshaderwavedraw.psb#BNSH@0x0#var0 +ps_core.bin 40 pixel d6eebd8c70a0b626 /data00.cpk/shader.dat/espshaderwavespd.pso/espshaderwavespd.psb#BNSH@0x0#var0 +ps_core.bin 41 pixel 81ca8d54ad85d2e7 /data00.cpk/shader.dat/filter00.pso/filter00.psb#BNSH@0x0#var0 +vs_core.bin 26 vertex 148727694facf591 /data00.cpk/shader.dat/filter00.vso/filter00.vsb#BNSH@0x0#var0 +ps_core.bin 42 pixel 959dc56212a65991 /data00.cpk/shader.dat/filter01.pso/filter01.psb#BNSH@0x0#var0 +ps_core.bin 43 pixel 11b919ba983dbd9f /data00.cpk/shader.dat/filter02.pso/filter02.psb#BNSH@0x0#var0 +ps_core.bin 44 pixel 4ec1b0239a7ee3d8 /data00.cpk/shader.dat/filter03.pso/filter03.psb#BNSH@0x0#var0 +vs_core.bin 27 vertex d36ba65c27bad16d /data00.cpk/shader.dat/filter03.vso/filter03.vsb#BNSH@0x0#var0 +ps_core.bin 45 pixel f6f554638c8a6d15 /data00.cpk/shader.dat/filter04.pso/filter04.psb#BNSH@0x0#var0 +ps_core.bin 46 pixel e833be1763c97436 /data00.cpk/shader.dat/filter05.pso/filter05.psb#BNSH@0x0#var0 +ps_core.bin 47 pixel ea5f50c0b250b47e /data00.cpk/shader.dat/filter06.pso/filter06.psb#BNSH@0x0#var0 +ps_core.bin 48 pixel 1b80379d935a6d6e /data00.cpk/shader.dat/filter07.pso/filter07.psb#BNSH@0x0#var0 +ps_core.bin 49 pixel 4b8c7726042889da /data00.cpk/shader.dat/filter08.pso/filter08.psb#BNSH@0x0#var0 +vs_core.bin 28 vertex dbb5e6bb59e4d023 /data00.cpk/shader.dat/filter08.vso/filter08.vsb#BNSH@0x0#var0 +ps_core.bin 50 pixel 5dd0bfc2cc569e25 /data00.cpk/shader.dat/filter08_0.pso/filter08_0.psb#BNSH@0x0#var0 +vs_core.bin 29 vertex 1ba0a1a51f9b818a /data00.cpk/shader.dat/filter08_0.vso/filter08_0.vsb#BNSH@0x0#var0 +ps_core.bin 51 pixel 5c7886f7898c158f /data00.cpk/shader.dat/filter08_1.pso/filter08_1.psb#BNSH@0x0#var0 +ps_core.bin 52 pixel 037d52494ee6f176 /data00.cpk/shader.dat/filter08_2.pso/filter08_2.psb#BNSH@0x0#var0 +ps_core.bin 53 pixel 0c860432f70c9de3 /data00.cpk/shader.dat/filter08_3.pso/filter08_3.psb#BNSH@0x0#var0 +ps_core.bin 54 pixel f76f7d85b01a61ba /data00.cpk/shader.dat/filter08_4.pso/filter08_4.psb#BNSH@0x0#var0 +ps_core.bin 55 pixel 709ef1cddcba167f /data00.cpk/shader.dat/filtershaderblendcubetex.pso/filtershaderblendcubetex.psb#BNSH@0x0#var0 +ps_core.bin 56 pixel 4cb7056e66ea8362 /data00.cpk/shader.dat/filtershadercopytex.pso/filtershadercopytex.psb#BNSH@0x0#var0 +vs_core.bin 30 vertex 6c12f8f8842ef41a /data00.cpk/shader.dat/filtershadercopytex.vso/filtershadercopytex.vsb#BNSH@0x0#var0 +ps_core.bin 57 pixel 703042be592a6047 /data00.cpk/shader.dat/filtershadercopytexgamma.pso/filtershadercopytexgamma.psb#BNSH@0x0#var0 +ps_core.bin 58 pixel 645d740a417b028b /data00.cpk/shader.dat/filtershadercopytexnousealpha.pso/filtershadercopytexnousealpha.psb#BNSH@0x0#var0 +vs_core.bin 31 vertex 2cd0cb485f30b9c5 /data00.cpk/shader.dat/filtershadercopytexnousealpha.vso/filtershadercopytexnousealpha.vsb#BNSH@0x0#var0 +ps_core.bin 59 pixel 058b1fed54215669 /data00.cpk/shader.dat/filtershadow_0.pso/filtershadow_0.psb#BNSH@0x0#var0 +vs_core.bin 32 vertex c5eadd0eac75350d /data00.cpk/shader.dat/filtershadow_0.vso/filtershadow_0.vsb#BNSH@0x0#var0 +ps_core.bin 60 pixel 3dd47409ede7c0b2 /data00.cpk/shader.dat/filtershadow_1.pso/filtershadow_1.psb#BNSH@0x0#var0 +vs_core.bin 33 vertex f7a5da63693f79b6 /data00.cpk/shader.dat/filtershadow_1.vso/filtershadow_1.vsb#BNSH@0x0#var0 +ps_core.bin 61 pixel 042945fbd9e43021 /data00.cpk/shader.dat/filtershadow_2.pso/filtershadow_2.psb#BNSH@0x0#var0 +ps_core.bin 62 pixel 4c788a7c901e4ce9 /data00.cpk/shader.dat/filtershadow_3.pso/filtershadow_3.psb#BNSH@0x0#var0 +vs_core.bin 34 vertex 525655b6b64df147 /data00.cpk/shader.dat/filtershadow_3.vso/filtershadow_3.vsb#BNSH@0x0#var0 +ps_core.bin 63 pixel 45ac264f4c1d4ef5 /data00.cpk/shader.dat/filtershadow_4.pso/filtershadow_4.psb#BNSH@0x0#var0 +vs_core.bin 35 vertex 17e893f2a53d76cf /data00.cpk/shader.dat/filtershadow_4.vso/filtershadow_4.vsb#BNSH@0x0#var0 +ps_core.bin 64 pixel c77248a79009e302 /data00.cpk/shader.dat/hwshaderpf.pso/hwshaderpf.psb#BNSH@0x0#var0 +vs_core.bin 36 vertex cba95afa342cab48 /data00.cpk/shader.dat/hwshaderpf.vso/hwshaderpf.vsb#BNSH@0x0#var0 +ps_core.bin 65 pixel f1dfe95cf8775d14 /data00.cpk/shader.dat/hwshaderpft.pso/hwshaderpft.psb#BNSH@0x0#var0 +vs_core.bin 37 vertex 230036cc6ccfde44 /data00.cpk/shader.dat/hwshaderpft.vso/hwshaderpft.vsb#BNSH@0x0#var0 +ps_core.bin 66 pixel d602459b0e125d3e /data00.cpk/shader.dat/hwshaderpftcharacter.pso/hwshaderpftcharacter.psb#BNSH@0x0#var0 +vs_core.bin 38 vertex 71257aee792562ce /data00.cpk/shader.dat/hwshaderpftcharacter.vso/hwshaderpftcharacter.vsb#BNSH@0x0#var0 +ps_core.bin 67 pixel 5337cbc2c5457606 /data00.cpk/shader.dat/hwshaderpfv.pso/hwshaderpfv.psb#BNSH@0x0#var0 +vs_core.bin 39 vertex 9db88a2ebed1c0f7 /data00.cpk/shader.dat/hwshaderpfv.vso/hwshaderpfv.vsb#BNSH@0x0#var0 +ps_core.bin 68 pixel 4d1def5067e3f418 /data00.cpk/shader.dat/hwshaderresolve.pso/hwshaderresolve.psb#BNSH@0x0#var0 +vs_core.bin 40 vertex 7a69b305e9f1e87e /data00.cpk/shader.dat/hwshaderresolve.vso/hwshaderresolve.vsb#BNSH@0x0#var0 +ps_core.bin 69 pixel 4710fe2459c1270b /data00.cpk/shader.dat/idshaderbase.pso/idshaderbase.psb#BNSH@0x0#var0 +vs_core.bin 41 vertex f98572b00a6f9106 /data00.cpk/shader.dat/idshaderbase.vso/idshaderbase.vsb#BNSH@0x0#var0 +ps_core.bin 70 pixel 17d3feecff6367bf /data00.cpk/shader.dat/idshaderblur_p1.pso/idshaderblur_p1.psb#BNSH@0x0#var0 +vs_core.bin 42 vertex d78d92ff9812fc50 /data00.cpk/shader.dat/idshaderblur_p1.vso/idshaderblur_p1.vsb#BNSH@0x0#var0 +ps_core.bin 71 pixel f97463f3ab01c21e /data00.cpk/shader.dat/idshaderblur_p2.pso/idshaderblur_p2.psb#BNSH@0x0#var0 +ps_core.bin 72 pixel ddd6993d8eab92db /data00.cpk/shader.dat/idshadermask.pso/idshadermask.psb#BNSH@0x0#var0 +vs_core.bin 43 vertex cc220b863eb376cb /data00.cpk/shader.dat/idshadermask.vso/idshadermask.vsb#BNSH@0x0#var0 +ps_core.bin 73 pixel e823e49428fc4442 /data00.cpk/shader.dat/idshadermask2.pso/idshadermask2.psb#BNSH@0x0#var0 +ps_core.bin 74 pixel 1d4020e3d7fb78e1 /data00.cpk/shader.dat/idshadermaskandps.pso/idshadermaskandps.psb#BNSH@0x0#var0 +ps_core.bin 75 pixel 240a8da8a23d0742 /data00.cpk/shader.dat/idshadermaskandpsedge.pso/idshadermaskandpsedge.psb#BNSH@0x0#var0 +ps_core.bin 76 pixel c5e1311268ea6cfd /data00.cpk/shader.dat/idshadermaskandreverseps.pso/idshadermaskandreverseps.psb#BNSH@0x0#var0 +ps_core.bin 77 pixel 144e73cff94031b7 /data00.cpk/shader.dat/idshadermaskandreversepsedge.pso/idshadermaskandreversepsedge.psb#BNSH@0x0#var0 +ps_core.bin 78 pixel bf6a7f4e2fd013cc /data00.cpk/shader.dat/idshadermaskps.pso/idshadermaskps.psb#BNSH@0x0#var0 +ps_core.bin 79 pixel 88026d23022de23d /data00.cpk/shader.dat/idshadermaskpsedge.pso/idshadermaskpsedge.psb#BNSH@0x0#var0 +ps_core.bin 80 pixel 7630b2de10834fe8 /data00.cpk/shader.dat/idshadermaskreverse.pso/idshadermaskreverse.psb#BNSH@0x0#var0 +ps_core.bin 81 pixel e086b66d703dd3af /data00.cpk/shader.dat/idshadermaskreverse2.pso/idshadermaskreverse2.psb#BNSH@0x0#var0 +ps_core.bin 82 pixel d4ea74f95092b1a7 /data00.cpk/shader.dat/idshadermaskreverseps.pso/idshadermaskreverseps.psb#BNSH@0x0#var0 +ps_core.bin 83 pixel 1faac5ebc6c7847f /data00.cpk/shader.dat/idshadermaskreversepsedge.pso/idshadermaskreversepsedge.psb#BNSH@0x0#var0 +ps_core.bin 84 pixel 224e5af2451a31bf /data00.cpk/shader.dat/idshadermess.pso/idshadermess.psb#BNSH@0x0#var0 +ps_core.bin 85 pixel e7f0b6d4dbd9ebd6 /data00.cpk/shader.dat/idshadermono.pso/idshadermono.psb#BNSH@0x0#var0 +vs_core.bin 44 vertex 4ba26bb5ff781f61 /data00.cpk/shader.dat/idshadermono.vso/idshadermono.vsb#BNSH@0x0#var0 +ps_core.bin 86 pixel f255e2305e9b20f4 /data00.cpk/shader.dat/idshaderoverlay.pso/idshaderoverlay.psb#BNSH@0x0#var0 +vs_core.bin 45 vertex f3a5e9e5c770ec22 /data00.cpk/shader.dat/idshaderoverlay.vso/idshaderoverlay.vsb#BNSH@0x0#var0 +ps_core.bin 87 pixel d005a74af09e3cdf /data00.cpk/shader.dat/idshaderprev.pso/idshaderprev.psb#BNSH@0x0#var0 +vs_core.bin 46 vertex 9282a0bb3b63b3a6 /data00.cpk/shader.dat/idshaderprev.vso/idshaderprev.vsb#BNSH@0x0#var0 +ps_core.bin 88 pixel bcea06010167ca9f /data00.cpk/shader.dat/idshaderprevid.pso/idshaderprevid.psb#BNSH@0x0#var0 +ps_core.bin 89 pixel abe04da6be42d5cd /data00.cpk/shader.dat/idshaderresolve.pso/idshaderresolve.psb#BNSH@0x0#var0 +vs_core.bin 47 vertex b0d4cb0f70da6036 /data00.cpk/shader.dat/idshaderresolve.vso/idshaderresolve.vsb#BNSH@0x0#var0 +ps_core.bin 90 pixel 875ae9ebb857c50d /data00.cpk/shader.dat/idshadershimmer.pso/idshadershimmer.psb#BNSH@0x0#var0 +ps_core.bin 91 pixel 6b71c238fd2038c6 /data00.cpk/shader.dat/idshadershimmerreverse.pso/idshadershimmerreverse.psb#BNSH@0x0#var0 +vs_core.bin 48 vertex 5d406a5ca96d5bd8 /data00.cpk/shader.dat/idshadershimmerreverse.vso/idshadershimmerreverse.vsb#BNSH@0x0#var0 +ps_core.bin 92 pixel b5422cf15ab65cc9 /data00.cpk/shader.dat/modelshaderbgs00.pso/modelshaderbgs00.psb#BNSH@0x0#var0 +vs_core.bin 49 vertex 089f0b75c10d1ebb /data00.cpk/shader.dat/modelshaderbgs00.vso/modelshaderbgs00.vsb#BNSH@0x0#var0 +ps_core.bin 93 pixel 1e21061b02d00058 /data00.cpk/shader.dat/modelshaderbgs00_bxxxx.pso/modelshaderbgs00_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 50 vertex a0c5bee2729baaf5 /data00.cpk/shader.dat/modelshaderbgs00_bxxxx.vso/modelshaderbgs00_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 94 pixel 47f6e1e71463ee64 /data00.cpk/shader.dat/modelshaderbgs00_xxxxa.pso/modelshaderbgs00_xxxxa.psb#BNSH@0x0#var0 +vs_core.bin 51 vertex b0ff8ff51adb3b9d /data00.cpk/shader.dat/modelshaderbgs00_xxxxa.vso/modelshaderbgs00_xxxxa.vsb#BNSH@0x0#var0 +vs_core.bin 52 vertex d54358a10ad6ab8c /data00.cpk/shader.dat/modelshaderbgs00_xxxxx.vso/modelshaderbgs00_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 95 pixel 5c03d59af00b3f0d /data00.cpk/shader.dat/modelshaderbgs01_bxxxx.pso/modelshaderbgs01_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 53 vertex 90cf712834804860 /data00.cpk/shader.dat/modelshaderbgs01_bxxxx.vso/modelshaderbgs01_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 96 pixel 4743d3786320a4fd /data00.cpk/shader.dat/modelshaderbgs01_xxxxx.pso/modelshaderbgs01_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 54 vertex 9585e48a2d590659 /data00.cpk/shader.dat/modelshaderbgs01_xxxxx.vso/modelshaderbgs01_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 97 pixel 4efdf35c80f07808 /data00.cpk/shader.dat/modelshaderbgs02_bxxxx.pso/modelshaderbgs02_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 55 vertex 511928958d45f3ee /data00.cpk/shader.dat/modelshaderbgs02_bxxxx.vso/modelshaderbgs02_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 98 pixel 69b3e886cac24a9e /data00.cpk/shader.dat/modelshaderbgs02_xxxxx.pso/modelshaderbgs02_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 56 vertex 782394c0b9075686 /data00.cpk/shader.dat/modelshaderbgs02_xxxxx.vso/modelshaderbgs02_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 99 pixel bfa37a964b86fd52 /data00.cpk/shader.dat/modelshaderbgs03_bxxxx.pso/modelshaderbgs03_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 57 vertex a2aac2737debf57c /data00.cpk/shader.dat/modelshaderbgs03_bxxxx.vso/modelshaderbgs03_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 100 pixel a53dc335caa600ec /data00.cpk/shader.dat/modelshaderbgs03_xxxxx.pso/modelshaderbgs03_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 58 vertex 1d5b6bc3dddd1782 /data00.cpk/shader.dat/modelshaderbgs03_xxxxx.vso/modelshaderbgs03_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 101 pixel ab31d75bae32b482 /data00.cpk/shader.dat/modelshaderbgs04_bxxxx.pso/modelshaderbgs04_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 59 vertex de131e6237edf0e8 /data00.cpk/shader.dat/modelshaderbgs04_bxxxx.vso/modelshaderbgs04_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 60 vertex 5107cc005b94fbe5 /data00.cpk/shader.dat/modelshaderbgs04_xxxxx.vso/modelshaderbgs04_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 102 pixel 1c7ebd7c0e56304f /data00.cpk/shader.dat/modelshaderbgs05_bxxxx.pso/modelshaderbgs05_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 61 vertex 0201993c61178ca8 /data00.cpk/shader.dat/modelshaderbgs05_bxxxx.vso/modelshaderbgs05_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 62 vertex 69bc5fbda7e33b32 /data00.cpk/shader.dat/modelshaderbgs05_xxxxx.vso/modelshaderbgs05_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 103 pixel 3c1b02398d2c7584 /data00.cpk/shader.dat/modelshaderbgs06_xxxxx.pso/modelshaderbgs06_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 63 vertex ee82d340fbaeb713 /data00.cpk/shader.dat/modelshaderbgs06_xxxxx.vso/modelshaderbgs06_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 104 pixel 1105e1806f977ece /data00.cpk/shader.dat/modelshaderbgs07_bxxxx.pso/modelshaderbgs07_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 64 vertex 265162d7609e7db5 /data00.cpk/shader.dat/modelshaderbgs07_bxxxx.vso/modelshaderbgs07_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 105 pixel 81d73b3c7f59bbed /data00.cpk/shader.dat/modelshaderbgs07_xxxxx.pso/modelshaderbgs07_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 65 vertex fefb9e6825e2da46 /data00.cpk/shader.dat/modelshaderbgs07_xxxxx.vso/modelshaderbgs07_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 106 pixel 1a49c5c9106f5d94 /data00.cpk/shader.dat/modelshaderbgs08_bxxxx.pso/modelshaderbgs08_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 66 vertex 19a19fb9e638cad9 /data00.cpk/shader.dat/modelshaderbgs08_bxxxx.vso/modelshaderbgs08_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 67 vertex 0476b9b878e89ae3 /data00.cpk/shader.dat/modelshaderbgs08_xxxxx.vso/modelshaderbgs08_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 107 pixel dd4d1fcfc605f34b /data00.cpk/shader.dat/modelshaderbgs09_bxxxx.pso/modelshaderbgs09_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 68 vertex cba3eebab875945f /data00.cpk/shader.dat/modelshaderbgs09_bxxxx.vso/modelshaderbgs09_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 69 vertex 3d6acfe8496f7d27 /data00.cpk/shader.dat/modelshaderbgs09_xxxxx.vso/modelshaderbgs09_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 108 pixel 7cf74b2b6504f3de /data00.cpk/shader.dat/modelshaderbgs11_bxxxx.pso/modelshaderbgs11_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 70 vertex 675bb75eb73838e3 /data00.cpk/shader.dat/modelshaderbgs11_bxxxx.vso/modelshaderbgs11_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 71 vertex bde478370d19103d /data00.cpk/shader.dat/modelshaderbgs11_xxxxx.vso/modelshaderbgs11_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 109 pixel 0e67445e433979f8 /data00.cpk/shader.dat/modelshaderbgs12_bxxxx.pso/modelshaderbgs12_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 72 vertex ac98edc09c72e175 /data00.cpk/shader.dat/modelshaderbgs12_bxxxx.vso/modelshaderbgs12_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 110 pixel 163f0dca308c5974 /data00.cpk/shader.dat/modelshaderbgs12_xxxxa.pso/modelshaderbgs12_xxxxa.psb#BNSH@0x0#var0 +vs_core.bin 73 vertex 956a489dae0a9f8b /data00.cpk/shader.dat/modelshaderbgs12_xxxxa.vso/modelshaderbgs12_xxxxa.vsb#BNSH@0x0#var0 +vs_core.bin 74 vertex 3bbaf1cd2012f383 /data00.cpk/shader.dat/modelshaderbgs12_xxxxx.vso/modelshaderbgs12_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 111 pixel c03587690c582302 /data00.cpk/shader.dat/modelshaderbgs13_xxxxx.pso/modelshaderbgs13_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 75 vertex 6ec1a7a2a85a0bab /data00.cpk/shader.dat/modelshaderbgs13_xxxxx.vso/modelshaderbgs13_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 112 pixel 01d96b5a91113501 /data00.cpk/shader.dat/modelshaderbgs14_bxxxx.pso/modelshaderbgs14_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 76 vertex a40a31c8fb6e1a81 /data00.cpk/shader.dat/modelshaderbgs14_bxxxx.vso/modelshaderbgs14_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 77 vertex 7bffd55646a221b2 /data00.cpk/shader.dat/modelshaderbgs14_xxxxx.vso/modelshaderbgs14_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 113 pixel 77c8be2b851e6aeb /data00.cpk/shader.dat/modelshaderbil00.pso/modelshaderbil00.psb#BNSH@0x0#var0 +vs_core.bin 78 vertex e89416b13991c507 /data00.cpk/shader.dat/modelshaderbil00.vso/modelshaderbil00.vsb#BNSH@0x0#var0 +ps_core.bin 114 pixel 5174a832ac6bc3f5 /data00.cpk/shader.dat/modelshaderbil00_xxxxx.pso/modelshaderbil00_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 79 vertex b96fbd816d3b7395 /data00.cpk/shader.dat/modelshaderbil00_xxxxx.vso/modelshaderbil00_xxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 80 vertex cb028e4b3419e553 /data00.cpk/shader.dat/modelshaderbil01_xxxxx.vso/modelshaderbil01_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 115 pixel 65fae370922c2378 /data00.cpk/shader.dat/modelshaderbil02_xxxxx.pso/modelshaderbil02_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 81 vertex 9b1837265a11065e /data00.cpk/shader.dat/modelshaderbil02_xxxxx.vso/modelshaderbil02_xxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 82 vertex 21e8b72313dd21fe /data00.cpk/shader.dat/modelshaderbil03_xxxxx.vso/modelshaderbil03_xxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 83 vertex 4a1ff22042cd0e71 /data00.cpk/shader.dat/modelshaderbil04_bxxxx.vso/modelshaderbil04_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 84 vertex cf31112601e7fb78 /data00.cpk/shader.dat/modelshaderbil04_xxxxa.vso/modelshaderbil04_xxxxa.vsb#BNSH@0x0#var0 +ps_core.bin 116 pixel de095a625322010b /data00.cpk/shader.dat/modelshaderbil04_xxxxx.pso/modelshaderbil04_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 85 vertex f7e79c51e5c90d5a /data00.cpk/shader.dat/modelshaderbil04_xxxxx.vso/modelshaderbil04_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 117 pixel 4da9cab9b8b7f4fe /data00.cpk/shader.dat/modelshaderbil05_xxxxx.pso/modelshaderbil05_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 86 vertex cb20c92773a5065f /data00.cpk/shader.dat/modelshaderbil05_xxxxx.vso/modelshaderbil05_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 118 pixel cb9781b92bd6e01b /data00.cpk/shader.dat/modelshaderblur.pso/modelshaderblur.psb#BNSH@0x0#var0 +vs_core.bin 87 vertex 794ff4cf0a5b0c7d /data00.cpk/shader.dat/modelshaderblur.vso/modelshaderblur.vsb#BNSH@0x0#var0 +ps_core.bin 119 pixel dd2f5c60052aa209 /data00.cpk/shader.dat/modelshaderblurcm4.pso/modelshaderblurcm4.psb#BNSH@0x0#var0 +vs_core.bin 88 vertex d0b3bc2293dfde11 /data00.cpk/shader.dat/modelshaderblurcm4.vso/modelshaderblurcm4.vsb#BNSH@0x0#var0 +ps_core.bin 120 pixel caf5f1bd236dac2b /data00.cpk/shader.dat/modelshaderblurcm8.pso/modelshaderblurcm8.psb#BNSH@0x0#var0 +ps_core.bin 121 pixel 66081d86ee7d6425 /data00.cpk/shader.dat/modelshaderblurcme.pso/modelshaderblurcme.psb#BNSH@0x0#var0 +ps_core.bin 122 pixel 842cb2a2a135837e /data00.cpk/shader.dat/modelshaderblurcmx.pso/modelshaderblurcmx.psb#BNSH@0x0#var0 +vs_core.bin 89 vertex cfd8d768b2c362fc /data00.cpk/shader.dat/modelshaderblurcmx.vso/modelshaderblurcmx.vsb#BNSH@0x0#var0 +ps_core.bin 123 pixel ad61603f1a90f223 /data00.cpk/shader.dat/modelshaderblurcmy.pso/modelshaderblurcmy.psb#BNSH@0x0#var0 +ps_core.bin 124 pixel a0b9d6d15bef7718 /data00.cpk/shader.dat/modelshaderblursrcweight.pso/modelshaderblursrcweight.psb#BNSH@0x0#var0 +vs_core.bin 90 vertex 75cbed97040be5da /data00.cpk/shader.dat/modelshaderblursrcweight.vso/modelshaderblursrcweight.vsb#BNSH@0x0#var0 +ps_core.bin 125 pixel b2cd16bdd7d94b43 /data00.cpk/shader.dat/modelshaderblurweight.pso/modelshaderblurweight.psb#BNSH@0x0#var0 +vs_core.bin 91 vertex 17616c0f96914840 /data00.cpk/shader.dat/modelshaderblurweight.vso/modelshaderblurweight.vsb#BNSH@0x0#var0 +ps_core.bin 126 pixel e44d94779f2ebf9a /data00.cpk/shader.dat/modelshaderbos00_bxnxx.pso/modelshaderbos00_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 92 vertex 02c7b60c60d1baca /data00.cpk/shader.dat/modelshaderbos00_bxnxx.vso/modelshaderbos00_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 127 pixel 69fd8693d3c4966a /data00.cpk/shader.dat/modelshaderbos01_bxnxx.pso/modelshaderbos01_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 93 vertex 4d87e0928d23197f /data00.cpk/shader.dat/modelshaderbos01_bxnxx.vso/modelshaderbos01_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 128 pixel 58906829ff8eb3ef /data00.cpk/shader.dat/modelshaderbos02_bxnmx.pso/modelshaderbos02_bxnmx.psb#BNSH@0x0#var0 +vs_core.bin 94 vertex be31819f7bd14cc0 /data00.cpk/shader.dat/modelshaderbos02_bxnmx.vso/modelshaderbos02_bxnmx.vsb#BNSH@0x0#var0 +ps_core.bin 129 pixel 1df133c9fd6dd766 /data00.cpk/shader.dat/modelshaderbos02_bxnxx.pso/modelshaderbos02_bxnxx.psb#BNSH@0x0#var0 +ps_core.bin 130 pixel 8ad64dc814ab7a3c /data00.cpk/shader.dat/modelshaderbos03_bxxxx.pso/modelshaderbos03_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 95 vertex f03ce3bcf90fa052 /data00.cpk/shader.dat/modelshaderbos03_bxxxx.vso/modelshaderbos03_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 131 pixel 8b3393fd30ab1957 /data00.cpk/shader.dat/modelshadereff02.pso/modelshadereff02.psb#BNSH@0x0#var0 +vs_core.bin 96 vertex aaf72cac1c0ffe99 /data00.cpk/shader.dat/modelshadereff02.vso/modelshadereff02.vsb#BNSH@0x0#var0 +ps_core.bin 132 pixel 9f2217eba49dfe41 /data00.cpk/shader.dat/modelshadereff03.pso/modelshadereff03.psb#BNSH@0x0#var0 +vs_core.bin 97 vertex 0f7f5cf2d965f4a3 /data00.cpk/shader.dat/modelshadereff03.vso/modelshadereff03.vsb#BNSH@0x0#var0 +ps_core.bin 133 pixel 810187019f06b23f /data00.cpk/shader.dat/modelshadereff05.pso/modelshadereff05.psb#BNSH@0x0#var0 +vs_core.bin 98 vertex 457b32d00d37dd9b /data00.cpk/shader.dat/modelshadereff05.vso/modelshadereff05.vsb#BNSH@0x0#var0 +ps_core.bin 134 pixel 227d1acfeccfa9e1 /data00.cpk/shader.dat/modelshaderefs00_bxxxx.pso/modelshaderefs00_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 99 vertex 32629b34df8bb950 /data00.cpk/shader.dat/modelshaderefs00_bxxxx.vso/modelshaderefs00_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 100 vertex 593850450bc94131 /data00.cpk/shader.dat/modelshaderefs00_xxxxx.vso/modelshaderefs00_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 135 pixel 70a865f830ea5bdc /data00.cpk/shader.dat/modelshaderefs01_bxxxx.pso/modelshaderefs01_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 101 vertex e17aa5c60808da00 /data00.cpk/shader.dat/modelshaderefs01_bxxxx.vso/modelshaderefs01_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 136 pixel 89f054acd0572140 /data00.cpk/shader.dat/modelshaderefs02_bxxxx.pso/modelshaderefs02_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 102 vertex b44e6a5e95542cfb /data00.cpk/shader.dat/modelshaderefs02_bxxxx.vso/modelshaderefs02_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 103 vertex 01fd1067edf6faf1 /data00.cpk/shader.dat/modelshaderefs02_xxxxx.vso/modelshaderefs02_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 137 pixel 726ef0aa66ca4e62 /data00.cpk/shader.dat/modelshaderefs03_bxnxx.pso/modelshaderefs03_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 104 vertex 1f5cfe6933645c37 /data00.cpk/shader.dat/modelshaderefs03_bxnxx.vso/modelshaderefs03_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 138 pixel 630f09a28c060fcf /data00.cpk/shader.dat/modelshaderefs04_bxnxx.pso/modelshaderefs04_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 105 vertex 71c6ca1634f49149 /data00.cpk/shader.dat/modelshaderefs04_bxnxx.vso/modelshaderefs04_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 139 pixel b19d1f1d63687757 /data00.cpk/shader.dat/modelshaderefs05_bxxxx.pso/modelshaderefs05_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 106 vertex f4147d882e9ebca9 /data00.cpk/shader.dat/modelshaderefs05_bxxxx.vso/modelshaderefs05_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 140 pixel bd88fd91020d6b0f /data00.cpk/shader.dat/modelshaderefs06_bxnxx.pso/modelshaderefs06_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 107 vertex a76e78b64639a5fc /data00.cpk/shader.dat/modelshaderefs06_bxnxx.vso/modelshaderefs06_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 141 pixel 8ee7cbc57d162740 /data00.cpk/shader.dat/modelshaderefs07_bxnxx.pso/modelshaderefs07_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 108 vertex 1edf5a6b4138705d /data00.cpk/shader.dat/modelshaderefs07_bxnxx.vso/modelshaderefs07_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 142 pixel 681ab7fc455a1fa0 /data00.cpk/shader.dat/modelshaderefs07_bxxxx.pso/modelshaderefs07_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 109 vertex 7b8dcf58ffcda025 /data00.cpk/shader.dat/modelshaderefs07_bxxxx.vso/modelshaderefs07_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 143 pixel 1ec5a6529dcd332f /data00.cpk/shader.dat/modelshaderefs08_bxxmx.pso/modelshaderefs08_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 110 vertex dbd172e58dc9a947 /data00.cpk/shader.dat/modelshaderefs08_bxxmx.vso/modelshaderefs08_bxxmx.vsb#BNSH@0x0#var0 +vs_core.bin 111 vertex 1bc0bbb6d5571de4 /data00.cpk/shader.dat/modelshaderefs09_bxxxx.vso/modelshaderefs09_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 144 pixel 518d1b80308c7501 /data00.cpk/shader.dat/modelshaderefs10_bxxxx.pso/modelshaderefs10_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 112 vertex 76f0f5ccc54a71d3 /data00.cpk/shader.dat/modelshaderefs10_bxxxx.vso/modelshaderefs10_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 145 pixel 70ad6cc87918b629 /data00.cpk/shader.dat/modelshaderefs11_xxxxx.pso/modelshaderefs11_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 113 vertex 507db0935481f749 /data00.cpk/shader.dat/modelshaderefs11_xxxxx.vso/modelshaderefs11_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 146 pixel 1644c6061bd2560a /data00.cpk/shader.dat/modelshaderefs12_bxxxx.pso/modelshaderefs12_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 114 vertex 84f72c3dbff5d3ec /data00.cpk/shader.dat/modelshaderefs12_bxxxx.vso/modelshaderefs12_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 147 pixel 6f5e973cf2c9853b /data00.cpk/shader.dat/modelshaderefs13_bxnxx.pso/modelshaderefs13_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 115 vertex 88b50c9677f0987b /data00.cpk/shader.dat/modelshaderefs13_bxnxx.vso/modelshaderefs13_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 148 pixel 4d05e5cb5ea1c2dd /data00.cpk/shader.dat/modelshaderefs14_bxnxx.pso/modelshaderefs14_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 116 vertex 0b397f799a512b78 /data00.cpk/shader.dat/modelshaderefs14_bxnxx.vso/modelshaderefs14_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 149 pixel 9a606818ac0507fd /data00.cpk/shader.dat/modelshaderefs15_xxxxx.pso/modelshaderefs15_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 117 vertex 889c1964eaa6d2ea /data00.cpk/shader.dat/modelshaderefs15_xxxxx.vso/modelshaderefs15_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 150 pixel 59259c264824174f /data00.cpk/shader.dat/modelshaderefs16_bxxxx.pso/modelshaderefs16_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 118 vertex 6e36b145c45dd11f /data00.cpk/shader.dat/modelshaderefs16_bxxxx.vso/modelshaderefs16_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 119 vertex 19c584b877d21789 /data00.cpk/shader.dat/modelshaderefs17_xxxxx.vso/modelshaderefs17_xxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 120 vertex 03392744b154e2a9 /data00.cpk/shader.dat/modelshaderefs18_bxxxx.vso/modelshaderefs18_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 151 pixel e784178a7c81b9ae /data00.cpk/shader.dat/modelshaderetc00_bxxmx.pso/modelshaderetc00_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 121 vertex fe0b594b849c8992 /data00.cpk/shader.dat/modelshaderetc00_bxxmx.vso/modelshaderetc00_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 152 pixel bb60e07aba1bf260 /data00.cpk/shader.dat/modelshaderetc00_bxxxx.pso/modelshaderetc00_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 122 vertex bb3c0c51bf5be3e0 /data00.cpk/shader.dat/modelshaderetc00_bxxxx.vso/modelshaderetc00_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 153 pixel 37abc9e0fe103aae /data00.cpk/shader.dat/modelshaderetc01_bxnxx.pso/modelshaderetc01_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 123 vertex 0661011e99872c6d /data00.cpk/shader.dat/modelshaderetc01_bxnxx.vso/modelshaderetc01_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 154 pixel 3a365df93e5e799c /data00.cpk/shader.dat/modelshaderetc02_bxxmx.pso/modelshaderetc02_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 124 vertex cc0ca96ab500a403 /data00.cpk/shader.dat/modelshaderetc02_bxxmx.vso/modelshaderetc02_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 155 pixel 3050f1069e34175e /data00.cpk/shader.dat/modelshaderetc03_bxxxx.pso/modelshaderetc03_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 125 vertex 4dcce5f053f9e1ce /data00.cpk/shader.dat/modelshaderetc03_bxxxx.vso/modelshaderetc03_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 156 pixel fb419468c944f9ba /data00.cpk/shader.dat/modelshaderetc04_bxxxx.pso/modelshaderetc04_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 126 vertex 5435ed1b475d4e64 /data00.cpk/shader.dat/modelshaderetc04_bxxxx.vso/modelshaderetc04_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 127 vertex 491abd8a8cb7a9c0 /data00.cpk/shader.dat/modelshaderetc04_xxxxx.vso/modelshaderetc04_xxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 128 vertex 238be76ccbabe14b /data00.cpk/shader.dat/modelshaderetc05_bxxxx.vso/modelshaderetc05_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 157 pixel 08efa1e95ca54ef5 /data00.cpk/shader.dat/modelshaderetc05_xxxxx.pso/modelshaderetc05_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 129 vertex 5e7a2fc4109dc23a /data00.cpk/shader.dat/modelshaderetc05_xxxxx.vso/modelshaderetc05_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 158 pixel a3b8dfea6ff43ca5 /data00.cpk/shader.dat/modelshaderetc06_bxxmx.pso/modelshaderetc06_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 130 vertex cf385dbbbb48fb2c /data00.cpk/shader.dat/modelshaderetc06_bxxmx.vso/modelshaderetc06_bxxmx.vsb#BNSH@0x0#var0 +vs_core.bin 131 vertex fa9c26bf69499b62 /data00.cpk/shader.dat/modelshaderetc06_bxxxx.vso/modelshaderetc06_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 159 pixel 360778c56b9fa22e /data00.cpk/shader.dat/modelshaderetc07_bxxxx.pso/modelshaderetc07_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 132 vertex cefa8bcdbfa69211 /data00.cpk/shader.dat/modelshaderetc07_bxxxx.vso/modelshaderetc07_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 160 pixel 399c95c1f90c8db8 /data00.cpk/shader.dat/modelshaderetc08_bxxmx.pso/modelshaderetc08_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 133 vertex c366f9efa0a821d5 /data00.cpk/shader.dat/modelshaderetc08_bxxmx.vso/modelshaderetc08_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 161 pixel 4bd027bf160bf85f /data00.cpk/shader.dat/modelshaderetc09_bxxxx.pso/modelshaderetc09_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 134 vertex 2dcedf0c447676b3 /data00.cpk/shader.dat/modelshaderetc09_bxxxx.vso/modelshaderetc09_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 162 pixel bf17063437166ca9 /data00.cpk/shader.dat/modelshaderetc10_bxxxx.pso/modelshaderetc10_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 135 vertex f7bcf437bfaf63fd /data00.cpk/shader.dat/modelshaderetc10_bxxxx.vso/modelshaderetc10_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 136 vertex 849dc1c5e2457316 /data00.cpk/shader.dat/modelshaderetc10_xxxxx.vso/modelshaderetc10_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 163 pixel 9050ccbbe0ae4bf3 /data00.cpk/shader.dat/modelshadereve00_bxxxx.pso/modelshadereve00_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 137 vertex a0fc6d681e5c79e7 /data00.cpk/shader.dat/modelshadereve00_bxxxx.vso/modelshadereve00_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 164 pixel 1a098b710c8593f4 /data00.cpk/shader.dat/modelshaderfixed.pso/modelshaderfixed.psb#BNSH@0x0#var0 +vs_core.bin 138 vertex f2c67eacce2bd1fb /data00.cpk/shader.dat/modelshaderfixed.vso/modelshaderfixed.vsb#BNSH@0x0#var0 +ps_core.bin 165 pixel 4c42943728fc1205 /data00.cpk/shader.dat/modelshaderfixeddepth.pso/modelshaderfixeddepth.psb#BNSH@0x0#var0 +vs_core.bin 139 vertex 8ffb143a7951b0ac /data00.cpk/shader.dat/modelshaderfixeddepth.vso/modelshaderfixeddepth.vsb#BNSH@0x0#var0 +ps_core.bin 166 pixel 93ecb4f4cbd35a33 /data00.cpk/shader.dat/modelshadergls01_bxxxx.pso/modelshadergls01_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 140 vertex 3a71fbef505365ec /data00.cpk/shader.dat/modelshadergls01_bxxxx.vso/modelshadergls01_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 167 pixel b1be700aaee24fd5 /data00.cpk/shader.dat/modelshadergls02_bxxxx.pso/modelshadergls02_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 141 vertex 41850eb2039baf88 /data00.cpk/shader.dat/modelshadergls02_bxxxx.vso/modelshadergls02_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 142 vertex 6c23da4568571906 /data00.cpk/shader.dat/modelshadergls02_xxxxx.vso/modelshadergls02_xxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 143 vertex 15ab5f16023a6693 /data00.cpk/shader.dat/modelshadergls03_bxxxx.vso/modelshadergls03_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 144 vertex 0e5da6b9f63745cd /data00.cpk/shader.dat/modelshadergrs00_bxxxa.vso/modelshadergrs00_bxxxa.vsb#BNSH@0x0#var0 +vs_core.bin 145 vertex 7c9c5c594f20ccee /data00.cpk/shader.dat/modelshadergrs00_bxxxx.vso/modelshadergrs00_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 146 vertex 302a31149b6aec6b /data00.cpk/shader.dat/modelshadergrs00_xxxxa.vso/modelshadergrs00_xxxxa.vsb#BNSH@0x0#var0 +vs_core.bin 147 vertex 83a1db8352b4c871 /data00.cpk/shader.dat/modelshadergrs00_xxxxx.vso/modelshadergrs00_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 168 pixel b216a0288765893a /data00.cpk/shader.dat/modelshadermag00.pso/modelshadermag00.psb#BNSH@0x0#var0 +vs_core.bin 148 vertex 6761f05bdaf4d38c /data00.cpk/shader.dat/modelshadermag00.vso/modelshadermag00.vsb#BNSH@0x0#var0 +ps_core.bin 169 pixel 9f432dbf54f80093 /data00.cpk/shader.dat/modelshadermag00_bxxxx.pso/modelshadermag00_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 149 vertex 44a9a73327a99e1c /data00.cpk/shader.dat/modelshadermag00_bxxxx.vso/modelshadermag00_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 150 vertex 747e52ab851b3107 /data00.cpk/shader.dat/modelshadermag00_xxxxx.vso/modelshadermag00_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 170 pixel 8faae174e302c7e0 /data00.cpk/shader.dat/modelshadermag01_bxxxx.pso/modelshadermag01_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 151 vertex 6204d73aca613d05 /data00.cpk/shader.dat/modelshadermag01_bxxxx.vso/modelshadermag01_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 171 pixel 915d8307008ed51d /data00.cpk/shader.dat/modelshadermag02_bxxxx.pso/modelshadermag02_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 152 vertex 44c463f625670978 /data00.cpk/shader.dat/modelshadermag02_bxxxx.vso/modelshadermag02_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 172 pixel 60a5b8eacea49a8e /data00.cpk/shader.dat/modelshadermag03_bxxxx.pso/modelshadermag03_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 153 vertex 4d09d90f5ee7cb39 /data00.cpk/shader.dat/modelshadermag03_bxxxx.vso/modelshadermag03_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 173 pixel a4eb05518b1b2b81 /data00.cpk/shader.dat/modelshaderobs00_bxnmx.pso/modelshaderobs00_bxnmx.psb#BNSH@0x0#var0 +vs_core.bin 154 vertex 45e9da0a55ec9844 /data00.cpk/shader.dat/modelshaderobs00_bxnmx.vso/modelshaderobs00_bxnmx.vsb#BNSH@0x0#var0 +ps_core.bin 174 pixel ee2baa2cecbc5d7c /data00.cpk/shader.dat/modelshaderobs00_bxnxx.pso/modelshaderobs00_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 155 vertex d79c559df6b00dfe /data00.cpk/shader.dat/modelshaderobs00_bxnxx.vso/modelshaderobs00_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 175 pixel 266f2c43ff179f40 /data00.cpk/shader.dat/modelshaderobs01_bunmx.pso/modelshaderobs01_bunmx.psb#BNSH@0x0#var0 +vs_core.bin 156 vertex 7c76d001b5786085 /data00.cpk/shader.dat/modelshaderobs01_bunmx.vso/modelshaderobs01_bunmx.vsb#BNSH@0x0#var0 +ps_core.bin 176 pixel 3fb76128995452d6 /data00.cpk/shader.dat/modelshaderobs01_bunxx.pso/modelshaderobs01_bunxx.psb#BNSH@0x0#var0 +ps_core.bin 177 pixel 3eb801c38898ac62 /data00.cpk/shader.dat/modelshaderobs01_buxmx.pso/modelshaderobs01_buxmx.psb#BNSH@0x0#var0 +vs_core.bin 157 vertex 32b66d69cc5cd48b /data00.cpk/shader.dat/modelshaderobs01_buxmx.vso/modelshaderobs01_buxmx.vsb#BNSH@0x0#var0 +ps_core.bin 178 pixel 783390005eb62619 /data00.cpk/shader.dat/modelshaderobs01_bxnxx.pso/modelshaderobs01_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 158 vertex 616092eb4717be16 /data00.cpk/shader.dat/modelshaderobs01_bxnxx.vso/modelshaderobs01_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 179 pixel 04866d888425b1fd /data00.cpk/shader.dat/modelshaderobs01_bxxmx.pso/modelshaderobs01_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 159 vertex 43d6db9e9d4373f8 /data00.cpk/shader.dat/modelshaderobs01_bxxmx.vso/modelshaderobs01_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 180 pixel 4fc8519c148ce0a6 /data00.cpk/shader.dat/modelshaderobs01_bxxxx.pso/modelshaderobs01_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 160 vertex 69b239ed8d598c9e /data00.cpk/shader.dat/modelshaderobs01_bxxxx.vso/modelshaderobs01_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 181 pixel 5957f85f9a219408 /data00.cpk/shader.dat/modelshaderobs02_bxxxx.pso/modelshaderobs02_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 161 vertex 166be69f5b7744a4 /data00.cpk/shader.dat/modelshaderobs02_bxxxx.vso/modelshaderobs02_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 182 pixel 1577fe4b0137ff48 /data00.cpk/shader.dat/modelshaderobs03_bxxmx.pso/modelshaderobs03_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 162 vertex 959cc9fb6732f80e /data00.cpk/shader.dat/modelshaderobs03_bxxmx.vso/modelshaderobs03_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 183 pixel f96576ed7a15d1e1 /data00.cpk/shader.dat/modelshaderobs03_bxxxx.pso/modelshaderobs03_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 163 vertex dca3421e3bfac452 /data00.cpk/shader.dat/modelshaderobs03_bxxxx.vso/modelshaderobs03_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 164 vertex 9619c6cd533186ea /data00.cpk/shader.dat/modelshaderobs04_bxxmx.vso/modelshaderobs04_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 184 pixel 4e2ec070b648c94e /data00.cpk/shader.dat/modelshaderobs04_bxxxx.pso/modelshaderobs04_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 165 vertex 2f22c329d95fc528 /data00.cpk/shader.dat/modelshaderobs04_bxxxx.vso/modelshaderobs04_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 185 pixel fea509e821da2792 /data00.cpk/shader.dat/modelshaderobs04_xxxxx.pso/modelshaderobs04_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 166 vertex a1dc1147ca406344 /data00.cpk/shader.dat/modelshaderobs04_xxxxx.vso/modelshaderobs04_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 186 pixel 9f7c16e24cb6dc71 /data00.cpk/shader.dat/modelshaderobs05_bxxmx.pso/modelshaderobs05_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 167 vertex 7c579398f29eccea /data00.cpk/shader.dat/modelshaderobs05_bxxmx.vso/modelshaderobs05_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 187 pixel c66ebc331d5fdcb4 /data00.cpk/shader.dat/modelshaderobs05_bxxxx.pso/modelshaderobs05_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 168 vertex facb250282463f4b /data00.cpk/shader.dat/modelshaderobs05_bxxxx.vso/modelshaderobs05_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 188 pixel 0cdd0f346ac5db3f /data00.cpk/shader.dat/modelshaderobs06_bxxmx.pso/modelshaderobs06_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 169 vertex 8d924d7ff6e1c3fb /data00.cpk/shader.dat/modelshaderobs06_bxxmx.vso/modelshaderobs06_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 189 pixel 8a176f1325eec151 /data00.cpk/shader.dat/modelshaderobs06_bxxxx.pso/modelshaderobs06_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 170 vertex 9cffacc883a44449 /data00.cpk/shader.dat/modelshaderobs06_bxxxx.vso/modelshaderobs06_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 190 pixel 47f5c8c534cc31f8 /data00.cpk/shader.dat/modelshaderobs07_bxnma.pso/modelshaderobs07_bxnma.psb#BNSH@0x0#var0 +ps_core.bin 191 pixel bd2ab1139f2dee6b /data00.cpk/shader.dat/modelshaderobs07_bxnmx.pso/modelshaderobs07_bxnmx.psb#BNSH@0x0#var0 +ps_core.bin 192 pixel 213e6755937a4475 /data00.cpk/shader.dat/modelshaderobs07_bxnxa.pso/modelshaderobs07_bxnxa.psb#BNSH@0x0#var0 +vs_core.bin 171 vertex 373b715ea32d5d35 /data00.cpk/shader.dat/modelshaderobs07_bxnxa.vso/modelshaderobs07_bxnxa.vsb#BNSH@0x0#var0 +ps_core.bin 193 pixel 640c8dae2b43da73 /data00.cpk/shader.dat/modelshaderobs07_bxnxx.pso/modelshaderobs07_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 172 vertex 9252918af536128a /data00.cpk/shader.dat/modelshaderobs07_bxnxx.vso/modelshaderobs07_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 194 pixel f64fc0101b9c3ef4 /data00.cpk/shader.dat/modelshaderobs09_bxxmx.pso/modelshaderobs09_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 173 vertex 1acecd8d111ddcbb /data00.cpk/shader.dat/modelshaderobs09_bxxmx.vso/modelshaderobs09_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 195 pixel cd2edcb1a4f58393 /data00.cpk/shader.dat/modelshaderobs10_bxnxx.pso/modelshaderobs10_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 174 vertex 01ba962286c32bac /data00.cpk/shader.dat/modelshaderobs10_bxnxx.vso/modelshaderobs10_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 196 pixel 94b7bcc7ef46cd27 /data00.cpk/shader.dat/modelshaderpls00_bxnxx.pso/modelshaderpls00_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 175 vertex ca2cfa344c5cda60 /data00.cpk/shader.dat/modelshaderpls00_bxnxx.vso/modelshaderpls00_bxnxx.vsb#BNSH@0x0#var0 +vs_core.bin 176 vertex 12318a6c6bc63909 /data00.cpk/shader.dat/modelshaderpls01_bxxma.vso/modelshaderpls01_bxxma.vsb#BNSH@0x0#var0 +vs_core.bin 177 vertex bf629d954553d1ad /data00.cpk/shader.dat/modelshaderpls01_bxxmb.vso/modelshaderpls01_bxxmb.vsb#BNSH@0x0#var0 +ps_core.bin 197 pixel 210f913b0c097fb0 /data00.cpk/shader.dat/modelshaderpls01_bxxmx.pso/modelshaderpls01_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 178 vertex 4e290eacda0b7c93 /data00.cpk/shader.dat/modelshaderpls01_bxxmx.vso/modelshaderpls01_bxxmx.vsb#BNSH@0x0#var0 +vs_core.bin 179 vertex 84439c5ff93c4d3c /data00.cpk/shader.dat/modelshaderpls01_bxxmy.vso/modelshaderpls01_bxxmy.vsb#BNSH@0x0#var0 +vs_core.bin 180 vertex 288e9fcfd0b2b2c2 /data00.cpk/shader.dat/modelshaderpls01_bxxxa.vso/modelshaderpls01_bxxxa.vsb#BNSH@0x0#var0 +vs_core.bin 181 vertex fd1b983033d18aa1 /data00.cpk/shader.dat/modelshaderpls01_bxxxx.vso/modelshaderpls01_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 198 pixel bc95155f72bfab17 /data00.cpk/shader.dat/modelshaderpls01_bxxxz.pso/modelshaderpls01_bxxxz.psb#BNSH@0x0#var0 +vs_core.bin 182 vertex 7150748ddca3e598 /data00.cpk/shader.dat/modelshaderpls01_bxxxz.vso/modelshaderpls01_bxxxz.vsb#BNSH@0x0#var0 +vs_core.bin 183 vertex 1bf5ab2f7faa6302 /data00.cpk/shader.dat/modelshaderpls02_bxxxx.vso/modelshaderpls02_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 199 pixel a15444452db01468 /data00.cpk/shader.dat/modelshaderpls03_bxnxa.pso/modelshaderpls03_bxnxa.psb#BNSH@0x0#var0 +vs_core.bin 184 vertex 0ddd8cbee34df6e4 /data00.cpk/shader.dat/modelshaderpls03_bxnxa.vso/modelshaderpls03_bxnxa.vsb#BNSH@0x0#var0 +ps_core.bin 200 pixel f37a5d462ed1adfa /data00.cpk/shader.dat/modelshaderpls03_bxnxx.pso/modelshaderpls03_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 185 vertex 3d3b20e4c098ab3e /data00.cpk/shader.dat/modelshaderpls03_bxnxx.vso/modelshaderpls03_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 201 pixel dd2d9524c43b9dd9 /data00.cpk/shader.dat/modelshaderpls04_bxnxx.pso/modelshaderpls04_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 186 vertex 93eb9fb67542b2cf /data00.cpk/shader.dat/modelshaderpls04_bxnxx.vso/modelshaderpls04_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 202 pixel 64042d08a32ae5fc /data00.cpk/shader.dat/modelshaderpls05_bxnxa.pso/modelshaderpls05_bxnxa.psb#BNSH@0x0#var0 +vs_core.bin 187 vertex 6fda6871302c3d84 /data00.cpk/shader.dat/modelshaderpls05_bxnxa.vso/modelshaderpls05_bxnxa.vsb#BNSH@0x0#var0 +ps_core.bin 203 pixel ec84a821bd9623c2 /data00.cpk/shader.dat/modelshaderpls05_bxnxb.pso/modelshaderpls05_bxnxb.psb#BNSH@0x0#var0 +vs_core.bin 188 vertex 3adf174a57605294 /data00.cpk/shader.dat/modelshaderpls05_bxnxb.vso/modelshaderpls05_bxnxb.vsb#BNSH@0x0#var0 +ps_core.bin 204 pixel b5d6bc5ba870b680 /data00.cpk/shader.dat/modelshaderpls05_bxnxx.pso/modelshaderpls05_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 189 vertex de2a4ee4819097d6 /data00.cpk/shader.dat/modelshaderpls05_bxnxx.vso/modelshaderpls05_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 205 pixel 4e40a06e8e67461d /data00.cpk/shader.dat/modelshaderpls06_bxnxa.pso/modelshaderpls06_bxnxa.psb#BNSH@0x0#var0 +ps_core.bin 206 pixel 2e9f45b0129f52b2 /data00.cpk/shader.dat/modelshaderpls06_bxnxb.pso/modelshaderpls06_bxnxb.psb#BNSH@0x0#var0 +vs_core.bin 190 vertex b8e7f11a4ce85bed /data00.cpk/shader.dat/modelshaderpls06_bxnxb.vso/modelshaderpls06_bxnxb.vsb#BNSH@0x0#var0 +ps_core.bin 207 pixel faec1aa3d1b3b33d /data00.cpk/shader.dat/modelshaderpls06_bxnxx.pso/modelshaderpls06_bxnxx.psb#BNSH@0x0#var0 +vs_core.bin 191 vertex 047db468ebed8715 /data00.cpk/shader.dat/modelshaderpls06_bxnxx.vso/modelshaderpls06_bxnxx.vsb#BNSH@0x0#var0 +ps_core.bin 208 pixel c629bb8da913cd14 /data00.cpk/shader.dat/modelshaderpls06_bxnxx2.pso/modelshaderpls06_bxnxx2.psb#BNSH@0x0#var0 +vs_core.bin 192 vertex f534cdd782a1ea5a /data00.cpk/shader.dat/modelshaderpls06_bxnxx2.vso/modelshaderpls06_bxnxx2.vsb#BNSH@0x0#var0 +ps_core.bin 209 pixel 079c729f8a6330ee /data00.cpk/shader.dat/modelshaderpls07_bxxxa.pso/modelshaderpls07_bxxxa.psb#BNSH@0x0#var0 +vs_core.bin 193 vertex e696c93da96e7cc3 /data00.cpk/shader.dat/modelshaderpls07_bxxxa.vso/modelshaderpls07_bxxxa.vsb#BNSH@0x0#var0 +ps_core.bin 210 pixel 1d9b72eb389bd194 /data00.cpk/shader.dat/modelshaderpls08_bxxxx.pso/modelshaderpls08_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 194 vertex b94fa743d5b4a8eb /data00.cpk/shader.dat/modelshaderpls08_bxxxx.vso/modelshaderpls08_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 211 pixel a592bdc47678a568 /data00.cpk/shader.dat/modelshaderpls09_bxxmx.pso/modelshaderpls09_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 195 vertex 74228ce2f31dda92 /data00.cpk/shader.dat/modelshaderpls09_bxxmx.vso/modelshaderpls09_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 212 pixel 91b717e4be2dbdf3 /data00.cpk/shader.dat/modelshadershadowcas00_bxxxx.pso/modelshadershadowcas00_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 196 vertex ef814086f3c86432 /data00.cpk/shader.dat/modelshadershadowcas00_bxxxx.vso/modelshadershadowcas00_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 213 pixel 812fb8719ddaf6a0 /data00.cpk/shader.dat/modelshadershadowcas00_xxxxx.pso/modelshadershadowcas00_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 197 vertex 23138d438a14aecf /data00.cpk/shader.dat/modelshadershadowcas00_xxxxx.vso/modelshadershadowcas00_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 214 pixel afc60050e41dc8f2 /data00.cpk/shader.dat/modelshadershadowfixed.pso/modelshadershadowfixed.psb#BNSH@0x0#var0 +vs_core.bin 198 vertex ffa7d0222db31606 /data00.cpk/shader.dat/modelshadershadowfixed.vso/modelshadershadowfixed.vsb#BNSH@0x0#var0 +ps_core.bin 215 pixel 1a7735507a8e9b81 /data00.cpk/shader.dat/modelshadershadowfixed_w.pso/modelshadershadowfixed_w.psb#BNSH@0x0#var0 +vs_core.bin 199 vertex ee0086287e3af3b2 /data00.cpk/shader.dat/modelshadershadowfixed_w.vso/modelshadershadowfixed_w.vsb#BNSH@0x0#var0 +ps_core.bin 216 pixel 81b19e1368a794db /data00.cpk/shader.dat/modelshadershadowrec00_bxxxx.pso/modelshadershadowrec00_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 200 vertex 1e7bbe75cd7d8a05 /data00.cpk/shader.dat/modelshadershadowrec00_bxxxx.vso/modelshadershadowrec00_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 217 pixel ee499bd3ccf5df0c /data00.cpk/shader.dat/modelshadershadowrec00_xxxxx.pso/modelshadershadowrec00_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 201 vertex 03001c0d5eadefda /data00.cpk/shader.dat/modelshadershadowrec00_xxxxx.vso/modelshadershadowrec00_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 218 pixel c9624c2f0f6c5c1f /data00.cpk/shader.dat/modelshadershadowrec01_bxxxp.pso/modelshadershadowrec01_bxxxp.psb#BNSH@0x0#var0 +ps_core.bin 219 pixel bdae9120f16b1b3c /data00.cpk/shader.dat/modelshadershadowrec01_bxxxx.pso/modelshadershadowrec01_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 202 vertex faac9c4f6ec101f7 /data00.cpk/shader.dat/modelshadershadowrec01_bxxxx.vso/modelshadershadowrec01_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 220 pixel b147a45c249c767e /data00.cpk/shader.dat/modelshadershadowrec01_xxxxp.pso/modelshadershadowrec01_xxxxp.psb#BNSH@0x0#var0 +ps_core.bin 221 pixel 3cd9ce7ec36718b4 /data00.cpk/shader.dat/modelshadershadowrec01_xxxxx.pso/modelshadershadowrec01_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 203 vertex 50cdbda715a49a85 /data00.cpk/shader.dat/modelshadershadowrec01_xxxxx.vso/modelshadershadowrec01_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 222 pixel 9c5157d0faf0e8bb /data00.cpk/shader.dat/modelshadershadowrec02_bxxxp.pso/modelshadershadowrec02_bxxxp.psb#BNSH@0x0#var0 +ps_core.bin 223 pixel 05ccbc425dcef69c /data00.cpk/shader.dat/modelshadershadowrec02_bxxxx.pso/modelshadershadowrec02_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 204 vertex 4b67a308fcd24927 /data00.cpk/shader.dat/modelshadershadowrec02_bxxxx.vso/modelshadershadowrec02_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 224 pixel 295eecc84fd59b2d /data00.cpk/shader.dat/modelshadershadowrec02_xxxxp.pso/modelshadershadowrec02_xxxxp.psb#BNSH@0x0#var0 +ps_core.bin 225 pixel af3e8e796f58d239 /data00.cpk/shader.dat/modelshadershadowrec02_xxxxx.pso/modelshadershadowrec02_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 205 vertex 271f98a3fb792f9f /data00.cpk/shader.dat/modelshadershadowrec02_xxxxx.vso/modelshadershadowrec02_xxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 206 vertex cfccc61e767ee572 /data00.cpk/shader.dat/modelshadershadowrecw00_bxxxx.vso/modelshadershadowrecw00_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 226 pixel ed08edf58b68ef4d /data00.cpk/shader.dat/modelshadershadowrecw00_xxxxx.pso/modelshadershadowrecw00_xxxxx.psb#BNSH@0x0#var0 +vs_core.bin 207 vertex ce18de0caa824726 /data00.cpk/shader.dat/modelshadershadowrecw00_xxxxx.vso/modelshadershadowrecw00_xxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 208 vertex 3d22ea585aa0106e /data00.cpk/shader.dat/modelshadershadowrecw01_bxxxx.vso/modelshadershadowrecw01_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 209 vertex 82f336a8b61e52c0 /data00.cpk/shader.dat/modelshadershadowrecw01_xxxxx.vso/modelshadershadowrecw01_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 227 pixel b63f73ce798b8dfb /data00.cpk/shader.dat/modelshadershadowsrcfixed.pso/modelshadershadowsrcfixed.psb#BNSH@0x0#var0 +vs_core.bin 210 vertex 733073b8558e4bc3 /data00.cpk/shader.dat/modelshadershadowsrcfixed.vso/modelshadershadowsrcfixed.vsb#BNSH@0x0#var0 +ps_core.bin 228 pixel 214eb62774b00edd /data00.cpk/shader.dat/modelshadershadowsrcweight.pso/modelshadershadowsrcweight.psb#BNSH@0x0#var0 +vs_core.bin 211 vertex c3cf9ea64bd08f7b /data00.cpk/shader.dat/modelshadershadowsrcweight.vso/modelshadershadowsrcweight.vsb#BNSH@0x0#var0 +ps_core.bin 229 pixel 35968985ac0ae97f /data00.cpk/shader.dat/modelshadershadowweight.pso/modelshadershadowweight.psb#BNSH@0x0#var0 +vs_core.bin 212 vertex 1f43a2a609f7f08f /data00.cpk/shader.dat/modelshadershadowweight.vso/modelshadershadowweight.vsb#BNSH@0x0#var0 +ps_core.bin 230 pixel 6fa23a37ce5d5dfb /data00.cpk/shader.dat/modelshadershadowweight_w.pso/modelshadershadowweight_w.psb#BNSH@0x0#var0 +vs_core.bin 213 vertex 49c249ba471d6629 /data00.cpk/shader.dat/modelshadershadowweight_w.vso/modelshadershadowweight_w.vsb#BNSH@0x0#var0 +ps_core.bin 231 pixel 59edb0c3bd0d51f1 /data00.cpk/shader.dat/modelshadertmp00_bxxxx.pso/modelshadertmp00_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 214 vertex b90c92b44529f008 /data00.cpk/shader.dat/modelshadertmp00_bxxxx.vso/modelshadertmp00_bxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 232 pixel 83becdaebd721bd1 /data00.cpk/shader.dat/modelshadervtx00_bxxxx.pso/modelshadervtx00_bxxxx.psb#BNSH@0x0#var0 +vs_core.bin 215 vertex 1fc8d61711850bb7 /data00.cpk/shader.dat/modelshadervtx00_bxxxx.vso/modelshadervtx00_bxxxx.vsb#BNSH@0x0#var0 +vs_core.bin 216 vertex 5e12f474d08d9b09 /data00.cpk/shader.dat/modelshadervtx00_xxxxx.vso/modelshadervtx00_xxxxx.vsb#BNSH@0x0#var0 +ps_core.bin 233 pixel e85fe69671334894 /data00.cpk/shader.dat/modelshadervtx01_bxxmx.pso/modelshadervtx01_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 217 vertex a77f6c3999b74153 /data00.cpk/shader.dat/modelshadervtx01_bxxmx.vso/modelshadervtx01_bxxmx.vsb#BNSH@0x0#var0 +ps_core.bin 234 pixel 53d9f4481c8d7714 /data00.cpk/shader.dat/modelshadervtx02_bxxmx.pso/modelshadervtx02_bxxmx.psb#BNSH@0x0#var0 +vs_core.bin 218 vertex 7b293253b1b09675 /data00.cpk/shader.dat/modelshadervtx02_bxxmx.vso/modelshadervtx02_bxxmx.vsb#BNSH@0x0#var0 +vs_core.bin 219 vertex 2fb07c9e231a6fc7 /data00.cpk/shader.dat/modelshaderweight.vso/modelshaderweight.vsb#BNSH@0x0#var0 +vs_core.bin 220 vertex 066ea7c379a89098 /data00.cpk/shader.dat/modelshaderweightdepth.vso/modelshaderweightdepth.vsb#BNSH@0x0#var0 +ps_core.bin 235 pixel f71f034bcf17d8d8 /data00.cpk/shader.dat/wiiumovie.pso/wiiumovie.psb#BNSH@0x0#var0 +vs_core.bin 221 vertex 07feafbb8e7492a4 /data00.cpk/shader.dat/wiiumovie.vso/wiiumovie.vsb#BNSH@0x0#var0 diff --git a/dm/games/010076F0049A2000/shader_map.tsv.conflicts.tsv b/dm/games/010076F0049A2000/shader_map.tsv.conflicts.tsv new file mode 100644 index 0000000..35c1b4d --- /dev/null +++ b/dm/games/010076F0049A2000/shader_map.tsv.conflicts.tsv @@ -0,0 +1,2 @@ +# kind: evidence control-section key conflict rulings: empty +dm_ctl_sha16 chosen_pc class candidates records diff --git a/dm/games/010076F0049A2000/shader_pairs.tsv b/dm/games/010076F0049A2000/shader_pairs.tsv new file mode 100644 index 0000000..ac32dd3 --- /dev/null +++ b/dm/games/010076F0049A2000/shader_pairs.tsv @@ -0,0 +1 @@ +# kind: evidence vertex / pixel shader pairs within BNSH variations (generated by dm/gfx/tools/shader_split.py, do not edit): vertex key pixel key diff --git a/docs/agents/01-extract.md b/docs/agents/01-extract.md index ec4f289..dd689dc 100644 --- a/docs/agents/01-extract.md +++ b/docs/agents/01-extract.md @@ -73,4 +73,4 @@ The work folder `$W` sits in the game's NSP folder, beside the NSP script's `.dict` indexes `.data` (`init`, `global`, `Hotel/`, … 98 of them). The `.dict` is 3,203 bytes in every archive: u32 magic `0xa9f32458`, u8 4, u8 1, u8 compressed, u8 0, u32 the largest stored chunk, u8 chunk count (120), u8 record count (52), u8 name count (3), u8 0; then the records (0x18 bytes: u32 hash, u16 the top-level entry count of its table, u16, and one chunk index for each of 16 sections), the chunks (0x10 bytes: u32 offset, length, stored length (one zlib stream; 0 in an archive stored as is), u16 alignment as log2, u8 file, u8 GPU memory) and the file names `.data`, `.debug`, `.nxpc`. Only `.data` ships: the 13 even records are the game's variants (languages), the odd ones point into `.nxpc`. Record v's resource table is chunk v: 12-byte entries {u32 kind (bit 31: a list of w1 entries from entry w2; bits 27–30 the section; bits 22–26 the alignment as log2), u32 length, u32 offset in the section}. The game reads an archive in `main+0x1ba00` (1.4.0). - An update to that engine (Luigi's Mansion 3 1.4.0) leaves `.dict` and `.data` as they were and adds `.patch`: u64 a bitmask of the records it patches, u32 offset, stored and inflated length of its body (one zlib stream: 16 u32 section offsets, 16 u16 alignments, then each section's new data), then 0xd0 bytes per patched record {u32 offset, stored length and entry count of its new resource table (one zlib stream), u16 its top-level entry count, u16, u32 the new length of each of 16 sections, 16 u32 end and 16 u32 start of the old data that is overwritten before it is read}. After loading a section the game walks the new table and packs that section's entries from its start at their alignment, each from the old section (an offset below its length) or from the body (the rest, counted from the old length), and writes the new offset into the entry (`main+0x1c8d0`, `main+0x1cbd0`); it does this in place, keeping a copy of the old data in [start, end). `shader_split.py` `nlg_patch_section` does the same. The base game's `init` has 5,149 shaders, 1.4.0's 5,317; 46 of the 103 the title draws exist only in the patched sections. - PlatinumGames' engine (Bayonetta 3) keeps everything but its WebM movies in 72 PKZ archives in the RomFS root (14 GB; `root_000.pkz`, `core_000.pkz`, `pl_000.pkz`, `st1_000.pkz`, `sound_000.pkz` … `sound_017.pkz`, …). A PKZ is `pkzl`, u32 version 0x20000, u64 archive length, u32 file count, u32 entry table offset (0x20), u32 name table length, u32 alignment (0x1000), then one 0x20-byte entry per file: u32 name offset, u32 compression name offset (both into the name table that follows the entries), u64 length, u64 offset, u64 stored length. The compression is named per entry, `OodleKraken` or `None` here (11,760 and 5,159 entries); `main` knows `ZStandard` too (`main+0xcbdf80` maps the three names to 0xc9, 0x65 and 0). Inside are DAT archives: `DAT\0`, u32 file count, then the offsets of the file offset table (u32 each), the extension table (4 bytes each), the name table (u32 name length, then one name of that length each), the file length table (u32 each) and a name hash map. Their members are the engine's own formats (`.wmb` models, `.wtb` / `.wta` textures, `.bxm`, `.eff`, …) and, in `root_000.pkz`'s `shader*.dat` and `autoshadereff.dat`, its shader objects ([04](04-graphics.md)). There is no Kraken decoder fit for this repository, and this `main` reads its archives only through Oodle's streaming decoder (`main+0xcbc698` creates one, `main+0xcbc7f8` feeds it 256 KB at a time into a 10 MB window), so `OodleLZ_Decompress` was never linked in and its name string is not there: `hle_oodle.c` finds `OodleLZDecoder_MemorySizeNeeded`, `Create`, `Destroy` and `DecodeSome` instead (by the strings of Oodle's `oodlelzcompressors.cpp` and their order) and decodes each entry with them in `DM_OODLE_SERVE`. The shader split decodes every entry of every PKZ (8 workers, one Mac host each) in about 20 s; only `root_000.pkz` holds shaders. -- The same engine in its Wii U form (Bayonetta 2, SDK 3.6.0) keeps everything but its USM movies and Wwise sound in six CRI CPK archives in the RomFS root (`data000.cpk` … `data006.cpk`, there is no `data004.cpk`; 9.5 GB, 6,091 files). A CPK is `CPK `, u32 0xff, u32 the length of the @UTF table at +0x10 that names `TocOffset` and `ContentOffset`; at `TocOffset` comes `TOC `, 12 bytes and another @UTF table with one row per file: `DirName`, `FileName`, `FileSize` (stored), `ExtractSize`, `FileOffset` (relative to the smaller of `TocOffset` and `ContentOffset`). An @UTF table is big-endian: `@UTF`, u32 length, then from +8 u16 version, u16 rows offset, u32 strings offset, u32 data offset, u32 table name, u16 column count, u16 row width, u32 row count, and one flag byte (storage 0x10 zero, 0x30 constant, 0x50 per row; type in the low nibble) and a name offset per column. Vanillaware's CPKs (Unicorn Overlord) store their @UTF tables masked: each byte XOR the low byte of a 16-bit value that starts at 0x655f and is multiplied by 0x4115 after every byte (`cpk.py` `unmask`); the split reads their 7,744 files, 6.5 GB unpacked, in 38 s and finds no shader there, so Unicorn Overlord's tables are unchanged. 5,693 of the files (6.9 GB stored, 12 GB unpacked) are CRILAYLA: `CRILAYLA`, u32 size, u32 compressed length, the compressed bits, then the output's first 0x100 bytes stored; the bits are read from the end backwards and the output written from its end backwards (`dm/gfx/tools/cpk.py`, about 29 MB/s in Python with the bits read from a string). Inside are PlatinumGames DAT archives, as in Bayonetta 3; the shaders are BNSH files (`.vso` / `.pso` members of `shader.dat`, `shader2.dat` and `shadereff.dat` in `data000.cpk`), which the split finds by decoding every entry of every CPK (`shader_split.py` `cpk_jobs`, about 2.5 minutes with 12 workers). +- The same engine in its Wii U form (Bayonetta 2, SDK 3.6.0) keeps everything but its USM movies and Wwise sound in six CRI CPK archives in the RomFS root (`data000.cpk` … `data006.cpk`, there is no `data004.cpk`; 9.5 GB, 6,091 files). A CPK is `CPK `, u32 0xff, u32 the length of the @UTF table at +0x10 that names `TocOffset` and `ContentOffset`; at `TocOffset` comes `TOC `, 12 bytes and another @UTF table with one row per file: `DirName`, `FileName`, `FileSize` (stored), `ExtractSize`, `FileOffset` (relative to the smaller of `TocOffset` and `ContentOffset`). An @UTF table is big-endian: `@UTF`, u32 length, then from +8 u16 version, u16 rows offset, u32 strings offset, u32 data offset, u32 table name, u16 column count, u16 row width, u32 row count, and one flag byte (storage 0x10 zero, 0x30 constant, 0x50 per row; type in the low nibble) and a name offset per column. Vanillaware's CPKs (Unicorn Overlord) store their @UTF tables masked: each byte XOR the low byte of a 16-bit value that starts at 0x655f and is multiplied by 0x4115 after every byte (`cpk.py` `unmask`); the split reads their 7,744 files, 6.5 GB unpacked, in 38 s and finds no shader there, so Unicorn Overlord's tables are unchanged. 5,693 of the files (6.9 GB stored, 12 GB unpacked) are CRILAYLA: `CRILAYLA`, u32 size, u32 compressed length, the compressed bits, then the output's first 0x100 bytes stored; the bits are read from the end backwards and the output written from its end backwards (`dm/gfx/tools/cpk.py`, about 29 MB/s in Python with the bits read from a string). Inside are PlatinumGames DAT archives, as in Bayonetta 3; the shaders are BNSH files (`.vso` / `.pso` members of `shader.dat`, `shader2.dat` and `shadereff.dat` in `data000.cpk`), which the split finds by decoding every entry of every CPK (`shader_split.py` `cpk_jobs`, about 2.5 minutes with 12 workers). Bayonetta (SDK 3.6.0) has the same layout in nine CPKs (`data00.cpk` … `data03.cpk`, `data10.cpk` … `data14.cpk`, 4.25 GB), its shaders in `shader.dat` of `data00.cpk`; `cpk.py` reads them as they are. diff --git a/docs/agents/03-bringup.md b/docs/agents/03-bringup.md index b1a4f12..cca41b6 100644 --- a/docs/agents/03-bringup.md +++ b/docs/agents/03-bringup.md @@ -264,7 +264,7 @@ Each entry: symptom → root cause → fix (where the fix lives). Check these fi - **Null read at `main+0xb8462c` right after the first two textures, called from `main+0x670eb0`** → not the fault itself: `nnMain`'s start-up (`main+0x6705c0`) returns false when any of its 30 steps fails, the game then skips its main loop and goes straight to shutdown, and the shutdown walks a pool (`main+0x4efce70`) whose initialization (`main+0xb840d0`) came after the failed step. `DM_PROBE` on each step's entry (lldb was unavailable: developer mode off) showed the last one entered, `main+0x69c698`, the built-in shaders of `shader2.dat` (`hwfillcolor`, `hwshaderpf`, …), and probes inside it the step that failed: creating a shader from its object (`main+0xd0d998`). The engine checks each shader object's GPU code version (byte 6 major, byte 7 minor of the object) against the driver's range (`nvnDeviceGetInteger` 0x2E–0x31: newest major, oldest major, newest minor, oldest minor) and refuses newer code; the host reported 1.14, the table measured on Super Mario Odyssey's SDK 7 driver, and `hwfillcolor.vso` is 1.15 (the game's objects run from 1.9 to 1.16). A driver runs the code of its own SDK's GLSLC, so the newest version the host reports now follows the SDK: 1.15 from SDK 8 (Catherine: Full Body's GLSLC 8.2.1), 1.16 from SDK 13 (Bayonetta 3's newest objects), and at least the version of a GLSLC the game carries, as before (`hle_nvn.c`). A wider range only lets more shaders pass such checks. - Two NVN getters were red stubs: `nvnWindowGetCrop` (read back every few frames; before any `SetCrop` it is the whole first window texture) and `nvnSamplerBuilderGetLodClamp`. - The first boot sat on the loading clock for about a minute, the CPU idle, with every file read done after 12 s: that run compiled its Metal libraries and pipelines on first use (cold cache). With a warm cache the title is up after about 15 s; what looked like a 40-second wait in the read log (`DM_FSLOG`) was the title screen itself, which reads nothing. Screenshots every few seconds (`ctl.sh snap` from a script) told the two apart. -- **SDK 3.6.0 (Bayonetta 2, PlatinumGames' engine in its Wii U form)**: the oldest SDK so far booted to its frame loop with the provisional profile as generated and no host change: the services, the NVN API version (53, as for every SDK up to 10), the audio output and the heap all answered as for SDK 4. What it needed was graphics (a depth clear folded into a smaller pass, single-sample `Downsample`; [04](04-graphics.md)) and a reader for its CRI CPK archives ([01](01-extract.md)). +- **SDK 3.6.0 (Bayonetta 2 and Bayonetta, PlatinumGames' engine in its Wii U form)**: the oldest SDK so far booted to its frame loop with the provisional profile as generated and no host change: the services, the NVN API version (53, as for every SDK up to 10), the audio output and the heap all answered as for SDK 4. What Bayonetta 2 needed was graphics (a depth clear folded into a smaller pass, single-sample `Downsample`; [04](04-graphics.md)) and a reader for its CRI CPK archives ([01](01-extract.md)). Bayonetta, on the same `sdk` and `subsdk0` builds, then needed no change at all: its profile is Bayonetta 2's with its own build row and tables, and the route from the boot to the first fight logged no red line. - **Code inherited from another title calls fixed addresses** → harmless on the build it was written for, silent memory corruption on any other. d2r-mobile's 3D render scale read a renderer pointer at `main+0x31e0848` and called `main+0x8582f0`; in Mario v0 that is the middle of a static initializer and only did nothing because the pointer happened to read 0. Such code checks `module_t.build_id` now (written into `fixups.tsv` by the rewriter) and stays off on other builds. - **Device / subsystem setup returns quietly and the next stage never starts** → a version or capability check failed (NVN API version, a feature query) → compare what the game queries with what the host answers. - **Font engine runs on garbage** → the system shared font must look like BFTTF: the SDK calls `ScalableFontEngineHelper::Decode(ptr, size)`, which XOR-decodes in place unless the first word is the "already decoded" marker (LE `0x18029a7f`) → serve `marker + bswap(size ^ 0x49621806) + TTF` (`hle_sdk16.c`). That is the address only for a game on SDK 11 or later whose `main` imports `Decode` (Wonder, Breath of the Wild, Tears of the Kingdom, Pokémon Legends: Z-A); every other game gets the TTF itself (next entry). diff --git a/docs/agents/04-graphics.md b/docs/agents/04-graphics.md index abea690..344eab3 100644 --- a/docs/agents/04-graphics.md +++ b/docs/agents/04-graphics.md @@ -455,6 +455,9 @@ Next Level Games' deferred renderer on SDK 7.3.2 (NVN 53): the scene draws into - **Fixed: a clear folded into a pass that covers less than the cleared attachment.** The story's opening narration showed its scene in a 32x32 or 256x256 square in the top-left corner of a black screen, the earlier opening scenes had speckled and blocky patches, and a full-screen grain overlay showed one tile. Every frame starts with a pass whose colour target is 32x32 (then 256x256 ones) beside the 1280x720 depth buffer, and the game clears the depth there. A Metal render pass covers only the smallest of its attachments, and so does a clear in its load action, so only that corner of the depth buffer was cleared; the scene behind failed the depth test against the previous frames' depth everywhere else (the texture dump right after the scene pass showed the picture only in the corner, and `DM_NVN_HILITE` on the scene's shaders lit only the corner). NVN clears the whole target. `rp_begin_ex_` now clears an attachment larger than the pass in a pass of its own first and loads it in the real one (`C … cleared in a pass of its own` in a pass dump). - **Fixed: `Downsample` of a single-sample texture** (`[RED] Downsample case not implemented: 320x176 1 samples format 70 → 80x48`). The game builds its bloom with `nvnCommandBufferDownsample` from a 320x176 target into 80x48 and 48x32 textures, and from its 1280x720 BGRA8 frame into an RGBA8 texture of the same size; the host took Downsample only as a multisample resolve and skipped the rest. A single-sample source is now drawn into the destination as a whole-level scaling copy with bilinear filtering, converting the format (`copy_t2t`, through `copy_t2t_draw`). +### Seen in Bayonetta +- **Shader containers**: as in Bayonetta 2, BNSH files of one stage each, the `.vso` / `.pso` members of `shader.dat` in `data00.cpk` (CRILAYLA): 458 distinct keys (236 pixel, 222 vertex). All build and the picture was right on the route to the first fight (the clock tower, the graveyard, Witch Time's tint, the practice screens, the HUD) with no change: the two fixes made for Bayonetta 2 cover this engine. + ### Seen in Pokémon Sword - **Shader containers**: 41,516 shaders. Nearly all are BNSH entries of the 7,699 GFPAK archives under `bin/archive` (the models' and effects' shader archives, LZ4 entries, [01](01-extract.md); `shader_split.py` `gfpak_members`), beside loose BNSH files (`bin/battle/waza/model/**/*.bnsh_vsh` / `_fsh`, `bin/graphics`, `system_resource/shader`) and two in `main`. The provisional split, with no GFPAK reader, found 3,126. - **Shaders in no file: YEBIS** (Silicon Studio's post-effect library: bloom, glare, depth of field, vignette; `C:/workspace/YEBIS_draft/src/GPU/…` in `main`). After the GFPAK reader, 38 shaders the opening drew were still missing from the map (`DM_NVN_SHDUMP`): no RomFS file and no module held their code, stored or LZ4, and none was a patched copy of a split shader (the nearest ones of the same length differ in hundreds of bytes). The game does not compile them at run time either (`main` imports `glslcCompile` from `subsdk1` but never calls it; it holds no GLSL source). A temporary trace in `nvnProgramSetShaders` (the key's code and control addresses, a backtrace and the heap around them) showed control sections packed back to back with technique names such as `ps_BrightPassT1_THRESHOLD_LUMINANCE_S1` beside them. The names are in `main`, and so is the data: the only zlib stream in `main` that inflates (`main+0x1c98ed9`, 39.5 MB) is YEBIS's `.tfxo file`, a text header (the shader count, `hlsl`, `TexUtil_NVN_NX`, the technique list) and 3,155 shaders, each a control section (its own length 0x850 on SDK 7) directly followed by its code area (`tfxo_streams`, `tfxo_shaders`; 3,015 distinct, 3,112 pixel and 43 vertex, single-stage programs). They covered all 38. diff --git a/docs/development.md b/docs/development.md index f737fce..67c14e3 100644 --- a/docs/development.md +++ b/docs/development.md @@ -694,6 +694,14 @@ The game's own work and its frame rate stay as they are; the host avoids work of - **Host changes, all general:** the newest GPU code version the NVN layer reports now follows the SDK (1.16 from SDK 13): the engine refused its built-in shaders at 1.14 and `nnMain` returned at once ([03](agents/03-bringup.md)); `nvnWindowGetCrop` and `nvnSamplerBuilderGetLodClamp`. - **Input:** the 3D pad layout (the camera is on the right stick). - **Mac input:** the work folder's `run/ctl.sh` drives a run started with `DM_CTL` (`CTL=` picks another run's control file), `run/step.sh ` presses and takes a screenshot, `run/snapseq.sh` boots and takes one every few seconds, and `run/route.sh ` boots on a fresh save and drives the route above: A at the title, A through the logo, A (Standard), A, B (closes the Naive Angel Mode help), A (Off), A (brightness), A (the auto-save notice), then Plus, Down, A skips the opening movie. +**Bayonetta (`010076F0049A2000`)** +- **Status:** plays on the iPhone (IPA 8.8 GB) from update 1.1 (`v65536`). On the Mac from a fresh save: the boot, the opening movie (USM; Plus skips it), the title and its attract demo, a new game (PLAY, NEW GAME, the auto-save notice, Normal), the prologue on the falling clock tower, the graveyard cutscene (skipped: Plus, Down, A, then Left, A for Yes), the touch-controls tips, the practice tutorial (punch, kick, combos, evade, Witch Time), the graveyard fight of Verse 1 with Witch Time, its autosave and the next loading screen's practice, with sound and no red line. 60 fps in play (frame time p50 16.65 ms, p95 17.1–17.5 ms; GPU 2–4 ms a frame on an M6), 30 in its cutscenes, where the game sets present interval 2; about 2.45 GB resident and 1.54 GB of Metal allocations, flat over 15 minutes. +- **Engine:** PlatinumGames' own engine in its Wii U form, on NVN, SDK 3.6.0, as Bayonetta 2: the same `sdk` and `subsdk0` builds, and no host change. CRI middleware throughout: the file system (CPK), ADX2 sound (`se/` and `bgm/`, `.acf` / `.awb`) through one 6-channel `AudioOut`, and Sofdec movies (USM), all decoded by the game's own code. No virtual address memory: a 3.11 GB heap in the 4 GB layout, `mem_used` 102 MB. +- **Files:** nine CRI CPK archives in the RomFS root (`data00.cpk` … `data03.cpk`, `data10.cpk` … `data14.cpk`, 4.25 GB) of PlatinumGames DAT archives, beside the movies and the sound; `cpk.py` reads them as they are. +- **Shaders:** 458 BNSH files of one stage each (236 pixel, 222 vertex), the `.vso` / `.pso` members of `shader.dat` in `data00.cpk`; the split (`cpk_jobs`) takes about 1.7 minutes. All build. +- **Input:** the 3D pad layout (the camera is on the right stick). The touch controls are handheld only; the profile keeps it docked. +- **Mac input:** the work folder's `run/see.sh [secs]` boots on a fresh save (or `SV=`), presses `PRESS` once frame `AT` is logged and takes a shot every `EVERY` s; `run/ctl.sh`, `run/step.sh`, `run/watch.sh` and `run/fight.sh` as for Bayonetta 2; `run/tut.sh` works through the practice tutorial's pages (Minus is Next), and `run/witch.py` times the Witch Time page's countdown from shots and dodges at a sweep of offsets (the page wants a dodge right before the strike; it took 20–30 tries). `run/save_ref` is the save at the prologue's chapter screen, `run/save_ref2` the checkpoint after the tutorial (the tutorial comes back after a load), `run/save_ref3` the one after Verse 1. + **Bayonetta 2 (`01007960049A0000`)** - **Status:** plays on the iPhone (IPA 12.5 GB) from update 1.2 (`v131072`). On the Mac: the boot, the PlatinumGames logo movie (USM), the title, a new game (slot 1, the auto-save notice, Story, Normal), the opening narration (The Legend of Aesir, which cannot be skipped on a first play), the prologue's cutscene (skipped: Plus, Down, A, A), the tutorial (closed: Plus, Down ×4, A), Verse 1 on the jet, Rodin's cutscene and the next fight with an Umbran Climax and a torture attack, with sound. 60 fps in play (frame time p50 16.67 ms, p95 17.5 ms; GPU 2–3.5 ms a frame on an M6), 30 in its cutscenes as the game asks; about 1.6 GB resident and 1.75 GB of Metal allocations. The title is up about 20 s after launch. - **Engine:** PlatinumGames' own engine in its Wii U form, on NVN, SDK 3.6.0: the oldest SDK so far, and no host change was needed for it (NVN API 53, as for the other SDKs up to 10). `subsdk0` is NVN's GLSLC; `main` imports `glslcCompile` but did not call it on the route above. Wwise sound through two 6-channel `AudioOut`s; CRI's file system and Sofdec movies (USM), both decoded by the game's own code. No virtual address memory: `nninitStartup` sets a 3.11 GB heap in the 4 GB layout, `mem_used` 102 MB for the rewritten modules. diff --git a/docs/images/bayonetta.jpg b/docs/images/bayonetta.jpg new file mode 100644 index 0000000..bc0c01c Binary files /dev/null and b/docs/images/bayonetta.jpg differ