From ab1080ae94639542849b5c7c8285b1fcf84c28c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Arneb=C3=A4ck?= Date: Wed, 19 Sep 2018 21:24:52 +0200 Subject: [PATCH] Bloom Example (#1491) * add bloom demo * remove modification to readme * add references for the bloom implementation --- examples/38-bloom/bloom.cpp | 642 ++++++++++++++++++ examples/38-bloom/fs_albedo_output.sc | 22 + examples/38-bloom/fs_bloom_combine.sc | 24 + examples/38-bloom/fs_downsample.sc | 42 ++ examples/38-bloom/fs_upsample.sc | 31 + examples/38-bloom/makefile | 10 + examples/38-bloom/screenshot.png | Bin 0 -> 139145 bytes examples/38-bloom/varying.def.sc | 13 + examples/38-bloom/vs_albedo_output.sc | 18 + examples/38-bloom/vs_deferred_combine.sc | 15 + examples/38-bloom/vs_fullscreen.sc | 11 + .../runtime/shaders/dx11/fs_albedo_output.bin | Bin 0 -> 492 bytes .../runtime/shaders/dx11/fs_bloom_combine.bin | Bin 0 -> 539 bytes .../runtime/shaders/dx11/fs_downsample.bin | Bin 0 -> 1892 bytes examples/runtime/shaders/dx11/fs_upsample.bin | Bin 0 -> 1446 bytes .../runtime/shaders/dx11/vs_albedo_output.bin | Bin 0 -> 1105 bytes .../runtime/shaders/dx11/vs_fullscreen.bin | Bin 0 -> 520 bytes .../runtime/shaders/dx9/fs_albedo_output.bin | Bin 0 -> 189 bytes .../runtime/shaders/dx9/fs_bloom_combine.bin | Bin 0 -> 436 bytes .../runtime/shaders/dx9/fs_downsample.bin | Bin 0 -> 965 bytes examples/runtime/shaders/dx9/fs_upsample.bin | Bin 0 -> 791 bytes .../runtime/shaders/dx9/vs_albedo_output.bin | Bin 0 -> 578 bytes .../runtime/shaders/dx9/vs_fullscreen.bin | Bin 0 -> 313 bytes .../runtime/shaders/glsl/fs_albedo_output.bin | Bin 0 -> 125 bytes .../runtime/shaders/glsl/fs_bloom_combine.bin | Bin 0 -> 367 bytes .../runtime/shaders/glsl/fs_downsample.bin | Bin 0 -> 1906 bytes examples/runtime/shaders/glsl/fs_upsample.bin | Bin 0 -> 1445 bytes .../runtime/shaders/glsl/vs_albedo_output.bin | Bin 0 -> 415 bytes .../runtime/shaders/glsl/vs_fullscreen.bin | Bin 0 -> 307 bytes scripts/genie.lua | 2 + 30 files changed, 830 insertions(+) create mode 100644 examples/38-bloom/bloom.cpp create mode 100644 examples/38-bloom/fs_albedo_output.sc create mode 100644 examples/38-bloom/fs_bloom_combine.sc create mode 100644 examples/38-bloom/fs_downsample.sc create mode 100644 examples/38-bloom/fs_upsample.sc create mode 100644 examples/38-bloom/makefile create mode 100644 examples/38-bloom/screenshot.png create mode 100644 examples/38-bloom/varying.def.sc create mode 100644 examples/38-bloom/vs_albedo_output.sc create mode 100644 examples/38-bloom/vs_deferred_combine.sc create mode 100644 examples/38-bloom/vs_fullscreen.sc create mode 100644 examples/runtime/shaders/dx11/fs_albedo_output.bin create mode 100644 examples/runtime/shaders/dx11/fs_bloom_combine.bin create mode 100644 examples/runtime/shaders/dx11/fs_downsample.bin create mode 100644 examples/runtime/shaders/dx11/fs_upsample.bin create mode 100644 examples/runtime/shaders/dx11/vs_albedo_output.bin create mode 100644 examples/runtime/shaders/dx11/vs_fullscreen.bin create mode 100644 examples/runtime/shaders/dx9/fs_albedo_output.bin create mode 100644 examples/runtime/shaders/dx9/fs_bloom_combine.bin create mode 100644 examples/runtime/shaders/dx9/fs_downsample.bin create mode 100644 examples/runtime/shaders/dx9/fs_upsample.bin create mode 100644 examples/runtime/shaders/dx9/vs_albedo_output.bin create mode 100644 examples/runtime/shaders/dx9/vs_fullscreen.bin create mode 100644 examples/runtime/shaders/glsl/fs_albedo_output.bin create mode 100644 examples/runtime/shaders/glsl/fs_bloom_combine.bin create mode 100644 examples/runtime/shaders/glsl/fs_downsample.bin create mode 100644 examples/runtime/shaders/glsl/fs_upsample.bin create mode 100644 examples/runtime/shaders/glsl/vs_albedo_output.bin create mode 100644 examples/runtime/shaders/glsl/vs_fullscreen.bin diff --git a/examples/38-bloom/bloom.cpp b/examples/38-bloom/bloom.cpp new file mode 100644 index 000000000..42c357947 --- /dev/null +++ b/examples/38-bloom/bloom.cpp @@ -0,0 +1,642 @@ +/* + * Copyright 2011-2018 Branimir Karadzic. All rights reserved. + * Copyright 2018 Eric Arnebäck. All rights reserved. + * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause + + * The bloom effect was based on the following presentation: + * http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare + */ + +#include "common.h" +#include "bgfx_utils.h" +#include "imgui/imgui.h" +#include "camera.h" +#include "bounds.h" +#include + +namespace +{ + +// pass that render the geometry of the boxes. +#define RENDER_PASS_GEOMETRY_ID 0 + +// the first downsample pass. +#define RENDER_PASS_DOWNSAMPLE0_ID 1 + +// the first upsample pass. +#define RENDER_PASS_UPSAMPLE0_ID ((TEX_CHAIN_LEN-1) + 1) + +// the final pass the combines the bloom with the g-buffer. +#define RENDER_PASS_COMBINE_ID ((TEX_CHAIN_LEN-1) + 1 + (TEX_CHAIN_LEN-1)) + +// number of downsampled and then upsampled textures(used for bloom.) +#define TEX_CHAIN_LEN 5 + +static float s_texelHalf = 0.0f; + +struct PosVertex +{ + float m_x; + float m_y; + float m_z; + + static void init() + { + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .end(); + } + + static bgfx::VertexDecl ms_decl; +}; + +bgfx::VertexDecl PosVertex::ms_decl; + +struct PosTexCoord0Vertex +{ + float m_x; + float m_y; + float m_z; + float m_u; + float m_v; + + static void init() + { + ms_decl + .begin() + .add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float) + .add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float) + .end(); + } + + static bgfx::VertexDecl ms_decl; +}; + +bgfx::VertexDecl PosTexCoord0Vertex::ms_decl; + +float cs = 0.29f; + +static PosVertex s_cubeVertices[24] = +{ + {-cs, cs, cs }, + { cs, cs, cs }, + {-cs, -cs, cs }, + { cs, -cs, cs }, + {-cs, cs, -cs }, + { cs, cs, -cs }, + {-cs, -cs, -cs }, + { cs, -cs, -cs }, + {-cs, cs, cs }, + { cs, cs, cs }, + {-cs, cs, -cs }, + { cs, cs, -cs }, + {-cs, -cs, cs }, + { cs, -cs, cs }, + {-cs, -cs, -cs }, + { cs, -cs, -cs }, + { cs, -cs, cs }, + { cs, cs, cs }, + { cs, -cs, -cs }, + { cs, cs, -cs }, + {-cs, -cs, cs }, + {-cs, cs, cs }, + {-cs, -cs, -cs }, + {-cs, cs, -cs }, +}; + +static const uint16_t s_cubeIndices[36] = +{ + 0, 2, 1, + 1, 2, 3, + 4, 5, 6, + 5, 7, 6, + + 8, 10, 9, + 9, 10, 11, + 12, 13, 14, + 13, 15, 14, + + 16, 18, 17, + 17, 18, 19, + 20, 21, 22, + 21, 23, 22, +}; + +void screenSpaceQuad(float _textureWidth, float _textureHeight, float _texelHalf, bool _originBottomLeft, float _width = 1.0f, float _height = 1.0f) +{ + if (3 == bgfx::getAvailTransientVertexBuffer(3, PosTexCoord0Vertex::ms_decl) ) + { + bgfx::TransientVertexBuffer vb; + bgfx::allocTransientVertexBuffer(&vb, 3, PosTexCoord0Vertex::ms_decl); + PosTexCoord0Vertex* vertex = (PosTexCoord0Vertex*)vb.data; + + const float minx = -_width; + const float maxx = _width; + const float miny = 0.0f; + const float maxy = _height*2.0f; + + const float texelHalfW = _texelHalf/_textureWidth; + const float texelHalfH = _texelHalf/_textureHeight; + const float minu = -1.0f + texelHalfW; + const float maxu = 1.0f + texelHalfH; + + const float zz = 0.0f; + + float minv = texelHalfH; + float maxv = 2.0f + texelHalfH; + + if (_originBottomLeft) + { + float temp = minv; + minv = maxv; + maxv = temp; + + minv -= 1.0f; + maxv -= 1.0f; + } + + vertex[0].m_x = minx; + vertex[0].m_y = miny; + vertex[0].m_z = zz; + vertex[0].m_u = minu; + vertex[0].m_v = minv; + + vertex[1].m_x = maxx; + vertex[1].m_y = miny; + vertex[1].m_z = zz; + vertex[1].m_u = maxu; + vertex[1].m_v = minv; + + vertex[2].m_x = maxx; + vertex[2].m_y = maxy; + vertex[2].m_z = zz; + vertex[2].m_u = maxu; + vertex[2].m_v = maxv; + + bgfx::setVertexBuffer(0, &vb); + } +} + +class ExampleDeferred : public entry::AppI +{ +public: + ExampleDeferred(const char* _name, const char* _description) + : entry::AppI(_name, _description) + { + } + + void init(int32_t _argc, const char* const* _argv, uint32_t _width, uint32_t _height) override + { + Args args(_argc, _argv); + + m_width = _width; + m_height = _height; + m_debug = BGFX_DEBUG_TEXT; + m_reset = BGFX_RESET_VSYNC; + + bgfx::Init init; + + init.type = args.m_type; + init.vendorId = args.m_pciId; + init.resolution.width = m_width; + init.resolution.height = m_height; + init.resolution.reset = m_reset; + bgfx::init(init); + + // Enable m_debug text. + bgfx::setDebug(m_debug); + + // Set palette color for index 0 + bgfx::setPaletteColor(0, UINT32_C(0x00000000) ); + + // Set geometry pass view clear state. + bgfx::setViewClear(RENDER_PASS_GEOMETRY_ID + , BGFX_CLEAR_COLOR|BGFX_CLEAR_DEPTH + , 1.0f + , 0 + , 0 + , 0 + ); + + // we need to clear the textures in the chain, before downsampling into them. + for (uint16_t ii = 0; ii < TEX_CHAIN_LEN-1; ++ii) { + bgfx::setViewClear(RENDER_PASS_DOWNSAMPLE0_ID + ii + , BGFX_CLEAR_COLOR | BGFX_CLEAR_DEPTH + , 1.0f + , 0 + , 0 + ); + } + + // Create vertex stream declaration. + PosVertex::init(); + PosTexCoord0Vertex::init(); + + // Create static vertex buffer. + m_vbh = bgfx::createVertexBuffer( + bgfx::makeRef(s_cubeVertices, sizeof(s_cubeVertices) ) + , PosVertex::ms_decl + ); + + m_ibh = bgfx::createIndexBuffer(bgfx::makeRef(s_cubeIndices, sizeof(s_cubeIndices) ) ); + + s_albedo = bgfx::createUniform("s_albedo", bgfx::UniformType::Int1); + s_tex = bgfx::createUniform("s_tex", bgfx::UniformType::Int1); + s_depth = bgfx::createUniform("s_depth", bgfx::UniformType::Int1); + s_light = bgfx::createUniform("s_light", bgfx::UniformType::Int1); + u_pixelSize = bgfx::createUniform("u_pixelSize", bgfx::UniformType::Vec4); + u_intensity = bgfx::createUniform("u_intensity", bgfx::UniformType::Vec4); + u_color = bgfx::createUniform("u_color", bgfx::UniformType::Vec4); + u_mtx = bgfx::createUniform("u_mtx", bgfx::UniformType::Mat4); + + // Create program from shaders. + m_geomProgram = loadProgram("vs_albedo_output", "fs_albedo_output"); + m_downsampleProgram = loadProgram("vs_fullscreen", "fs_downsample"); + m_upsampleProgram = loadProgram("vs_fullscreen", "fs_upsample"); + m_combineProgram = loadProgram("vs_fullscreen", "fs_bloom_combine"); + + m_gbufferTex[0].idx = bgfx::kInvalidHandle; + m_gbufferTex[1].idx = bgfx::kInvalidHandle; + m_gbufferTex[2].idx = bgfx::kInvalidHandle; + m_gbuffer.idx = bgfx::kInvalidHandle; + + for (int ii = 0; ii < TEX_CHAIN_LEN; ++ii) { + m_texChainFb[ii].idx = bgfx::kInvalidHandle; + m_texChainTex[ii].idx = bgfx::kInvalidHandle; + } + + // Imgui. + imguiCreate(); + + m_timeOffset = bx::getHPCounter(); + const bgfx::RendererType::Enum renderer = bgfx::getRendererType(); + s_texelHalf = bgfx::RendererType::Direct3D9 == renderer ? 0.5f : 0.0f; + + // Get renderer capabilities info. + m_caps = bgfx::getCaps(); + + m_oldWidth = 0; + m_oldHeight = 0; + m_oldReset = m_reset; + + m_scrollArea = 0; + + cameraCreate(); + + const float initialPos[3] = { 0.0f, 0.0f, -15.0f }; + cameraSetPosition(initialPos); + cameraSetVerticalAngle(0.0f); + } + + virtual int shutdown() override + { + // Cleanup. + cameraDestroy(); + imguiDestroy(); + + if (bgfx::isValid(m_gbuffer) ) + { + bgfx::destroy(m_gbuffer); + } + + for (int ii = 0; ii < TEX_CHAIN_LEN; ++ii) { + bgfx::destroy(m_texChainTex[ii]); + bgfx::destroy(m_texChainFb[ii]); + + } + + bgfx::destroy(m_ibh); + bgfx::destroy(m_vbh); + + bgfx::destroy(m_geomProgram); + bgfx::destroy(m_downsampleProgram); + bgfx::destroy(m_upsampleProgram); + bgfx::destroy(m_combineProgram); + + bgfx::destroy(s_albedo); + bgfx::destroy(s_tex); + bgfx::destroy(s_depth); + bgfx::destroy(s_light); + + bgfx::destroy(u_mtx); + bgfx::destroy(u_pixelSize); + bgfx::destroy(u_intensity); + bgfx::destroy(u_color); + + // Shutdown bgfx. + bgfx::shutdown(); + + return 0; + } + + bool update() override + { + if (!entry::processEvents(m_width, m_height, m_debug, m_reset, &m_mouseState) ) + { + imguiBeginFrame(m_mouseState.m_mx + , m_mouseState.m_my + , (m_mouseState.m_buttons[entry::MouseButton::Left ] ? IMGUI_MBUT_LEFT : 0) + | (m_mouseState.m_buttons[entry::MouseButton::Right ] ? IMGUI_MBUT_RIGHT : 0) + | (m_mouseState.m_buttons[entry::MouseButton::Middle] ? IMGUI_MBUT_MIDDLE : 0) + , m_mouseState.m_mz + , uint16_t(m_width) + , uint16_t(m_height) + ); + + showExampleDialog(this); + + int64_t now = bx::getHPCounter(); + static int64_t last = now; + const int64_t frameTime = now - last; + last = now; + const double freq = double(bx::getHPFrequency() ); + const float deltaTime = float(frameTime/freq); + + float time = (float)( (now-m_timeOffset)/freq); + + if (2 > m_caps->limits.maxFBAttachments) + { + // When multiple render targets (MRT) is not supported by GPU, + // implement alternative code path that doesn't use MRT. + bool blink = uint32_t(time*3.0f)&1; + bgfx::dbgTextPrintf(0, 0, blink ? 0x4f : 0x04, " MRT not supported by GPU. "); + + // Set view 0 default viewport. + bgfx::setViewRect(0, 0, 0, uint16_t(m_width), uint16_t(m_height) ); + + // This dummy draw call is here to make sure that view 0 is cleared + // if no other draw calls are submitted to view 0. + bgfx::touch(0); + } + else + { + if (m_oldWidth != m_width + || m_oldHeight != m_height + || m_oldReset != m_reset + || !bgfx::isValid(m_gbuffer) ) + { + // Recreate variable size render targets when resolution changes. + m_oldWidth = m_width; + m_oldHeight = m_height; + m_oldReset = m_reset; + + if (bgfx::isValid(m_gbuffer) ) + { + bgfx::destroy(m_gbuffer); + } + + const uint64_t tsFlags = 0 + | BGFX_TEXTURE_RT + | BGFX_SAMPLER_U_CLAMP + | BGFX_SAMPLER_V_CLAMP + ; + + for (int ii = 0; ii < TEX_CHAIN_LEN; ++ii) { + + if (bgfx::isValid(m_texChainFb[ii])) + { + bgfx::destroy(m_texChainFb[ii]); + } + + m_texChainTex[ii] = bgfx::createTexture2D((uint16_t)m_width / (uint16_t)pow(2, ii), (uint16_t)m_height / (uint16_t)pow(2, ii), false, 1, bgfx::TextureFormat::RGBA32F, tsFlags); + m_texChainFb[ii] = bgfx::createFrameBuffer(1, &m_texChainTex[ii], true); + } + + m_gbufferTex[0] = bgfx::createTexture2D(uint16_t(m_width), uint16_t(m_height), false, 1, bgfx::TextureFormat::RGBA32F, tsFlags); + m_gbufferTex[1] = m_texChainTex[0]; + m_gbufferTex[2] = bgfx::createTexture2D(uint16_t(m_width), uint16_t(m_height), false, 1, bgfx::TextureFormat::D24S8, tsFlags); + m_gbuffer = bgfx::createFrameBuffer(BX_COUNTOF(m_gbufferTex), m_gbufferTex, true); + + } + + ImGui::SetNextWindowPos( + ImVec2(m_width/7.0f, m_height - m_height / 2.0f - 10.0f ) + , ImGuiCond_FirstUseEver + ); + ImGui::SetNextWindowSize( + ImVec2(m_width / 5.0f, m_height / 3.0f) + , ImGuiCond_FirstUseEver + ); + ImGui::Begin("Settings" + , NULL + , 0 + ); + + ImGui::SliderFloat("intensity", &m_intensity, 0.0f, 3.0f); + + ImGui::End(); + + // Update camera. + cameraUpdate(deltaTime, m_mouseState); + + float view[16]; + cameraGetViewMtx(view); + + float proj[16]; + // Setup views + { + bgfx::setViewRect(RENDER_PASS_GEOMETRY_ID, 0, 0, uint16_t(m_width), uint16_t(m_height) ); + + for (uint16_t ii = 0; ii < TEX_CHAIN_LEN-1; ++ii) { + bgfx::setViewRect(RENDER_PASS_DOWNSAMPLE0_ID + ii, 0, 0, + uint16_t(m_width / (uint16_t)pow(2, ii+1)), + uint16_t(m_height / (uint16_t)pow(2, ii+1))); + } + + for (uint16_t ii = 0; ii < TEX_CHAIN_LEN-1; ++ii) { + + bgfx::setViewRect(RENDER_PASS_UPSAMPLE0_ID + ii, 0, 0, + uint16_t(m_width / (uint16_t)pow(2, TEX_CHAIN_LEN-ii - 2)), + uint16_t(m_height / (uint16_t)pow(2, TEX_CHAIN_LEN - ii - 2))); + } + + bx::mtxProj(proj, 60.0f, float(m_width) / float(m_height), 0.1f, 100.0f, m_caps->homogeneousDepth); + bgfx::setViewFrameBuffer(RENDER_PASS_GEOMETRY_ID, m_gbuffer); + bgfx::setViewTransform(RENDER_PASS_GEOMETRY_ID, view, proj); + + bgfx::setViewRect(RENDER_PASS_COMBINE_ID, 0, 0, uint16_t(m_width), uint16_t(m_height)); + + bx::mtxOrtho(proj, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 100.0f, 0.0f, m_caps->homogeneousDepth); + + for (uint16_t ii = 0; ii < TEX_CHAIN_LEN-1; ++ii) { + bgfx::setViewTransform(RENDER_PASS_DOWNSAMPLE0_ID + ii, NULL, proj); + bgfx::setViewFrameBuffer(RENDER_PASS_DOWNSAMPLE0_ID + ii, m_texChainFb[ii+1]); + } + + for (uint16_t ii = 0; ii < TEX_CHAIN_LEN-1; ++ii) { + bgfx::setViewTransform(RENDER_PASS_UPSAMPLE0_ID + ii, NULL, proj); + bgfx::setViewFrameBuffer(RENDER_PASS_UPSAMPLE0_ID + ii, m_texChainFb[TEX_CHAIN_LEN - ii - 2]); + } + + bgfx::setViewTransform(RENDER_PASS_COMBINE_ID, NULL, proj); + } + + const uint32_t dim = 7; + const int COLS = 5; + float color[4*COLS] = { + 0.0f, 1.0f, 0.0f, 1.0f, + 1.0f, 0.0f, 0.0f, 1.0f, + 0.0f, 0.0f, 1.0f, 1.0f, + 1.0f, 0.0f, 1.0f, 1.0f, + 0.0f, 1.0f, 1.0f, 1.0f, + }; + + // render a whole bunch of colored cubes to the g-buffer. + for (uint32_t xx = 0; xx < dim; ++xx) + { + bgfx::setUniform(u_color, &color[4 * (xx % COLS) ]); + + float mtx[16]; + + bx::mtxIdentity(mtx); + + float t = (float)xx / (float)dim; + + t += 0.07f * time; + +// float r = (float)sin(0.47f * time * 2.0f * 3.14f) * 1.0f + 1.9f; + float r = (float)sin(0.47f * time * 2.0f * 3.14f) * 1.0f + 1.4f; + + //r = 1.9f; + + mtx[12] = (float)sin(t * 2.0f * 3.14f)*r; + mtx[13] = (float)cos(t * 2.0f * 3.14f)*r; + mtx[14] = 0.2f * ((float)xx / (float)dim); + + // Set transform for draw call. + bgfx::setTransform(mtx); + + // Set vertex and index buffer. + bgfx::setVertexBuffer(0, m_vbh); + bgfx::setIndexBuffer(m_ibh); + + // Set render states. + bgfx::setState(0 + | BGFX_STATE_WRITE_RGB + | BGFX_STATE_WRITE_A + | BGFX_STATE_WRITE_Z + | BGFX_STATE_DEPTH_TEST_LESS + | BGFX_STATE_MSAA + ); + + // Submit primitive for rendering to view 0. + bgfx::submit(RENDER_PASS_GEOMETRY_ID, m_geomProgram); + } + + // now downsample. + for(uint16_t ii = 0; ii < TEX_CHAIN_LEN-1; ++ii) + { + float pixelSize[4] = { + 1.0f / (float)(m_width / (uint16_t)pow(2, ii + 1)), + 1.0f / (float)(m_height / (uint16_t)pow(2, ii + 1)), 0.0f, 0.0f }; + + bgfx::setUniform(u_pixelSize, pixelSize); + bgfx::setTexture(0, s_tex, m_texChainTex[ii]); + + bgfx::setState(0 + | BGFX_STATE_WRITE_RGB + | BGFX_STATE_WRITE_A + ); + + screenSpaceQuad((float)m_width, (float)m_height, s_texelHalf, m_caps->originBottomLeft); + bgfx::submit(RENDER_PASS_DOWNSAMPLE0_ID + ii, m_downsampleProgram); + } + + // now upsample. + for (uint16_t ii = 0; ii < TEX_CHAIN_LEN - 1; ++ii) + { + float pixelSize[4] = { + 1.0f / (float)(m_width / (uint16_t)pow(2, TEX_CHAIN_LEN - 2 - ii)), + 1.0f / (float)(m_height / (uint16_t)pow(2, TEX_CHAIN_LEN - 2 - ii)), 0.0f, 0.0f }; + float intensity[4] = { m_intensity, 0.0f, 0.0f, 0.0f }; + + bgfx::setUniform(u_pixelSize, pixelSize); + bgfx::setUniform(u_intensity, intensity); + + // Combine color and light buffers. + bgfx::setTexture(0, s_tex, m_texChainTex[TEX_CHAIN_LEN - 1 - ii]); + + // as we upscale, we also sum with the previous mip level. We do this by alpha blending. + bgfx::setState( + 0 + | BGFX_STATE_WRITE_RGB + | BGFX_STATE_WRITE_A + | BGFX_STATE_BLEND_ADD + ); + + screenSpaceQuad((float)m_width, (float)m_height, s_texelHalf, m_caps->originBottomLeft); + bgfx::submit(RENDER_PASS_UPSAMPLE0_ID + ii, m_upsampleProgram); + } + + // do final pass, that combines the bloom with the g-buffer. + bgfx::setTexture(0, s_albedo, m_gbufferTex[0]); + bgfx::setTexture(1, s_light, m_texChainTex[0]); + bgfx::setState(0 + | BGFX_STATE_WRITE_RGB + | BGFX_STATE_WRITE_A + ); + screenSpaceQuad( (float)m_width, (float)m_height, s_texelHalf, m_caps->originBottomLeft); + bgfx::submit(RENDER_PASS_COMBINE_ID, m_combineProgram); + } + + imguiEndFrame(); + + // Advance to next frame. Rendering thread will be kicked to + // process submitted rendering primitives. + bgfx::frame(); + + return true; + } + + return false; + } + + bgfx::VertexBufferHandle m_vbh; + bgfx::IndexBufferHandle m_ibh; + + bgfx::UniformHandle s_albedo; + bgfx::UniformHandle s_tex; + bgfx::UniformHandle s_depth; + bgfx::UniformHandle s_light; + bgfx::UniformHandle u_pixelSize; + bgfx::UniformHandle u_intensity; + bgfx::UniformHandle u_color; + + + bgfx::UniformHandle u_mtx; + + bgfx::ProgramHandle m_geomProgram; + bgfx::ProgramHandle m_downsampleProgram; + bgfx::ProgramHandle m_upsampleProgram; + bgfx::ProgramHandle m_combineProgram; + + bgfx::TextureHandle m_gbufferTex[3]; + + bgfx::FrameBufferHandle m_gbuffer; + + bgfx::FrameBufferHandle m_texChainFb[TEX_CHAIN_LEN]; + bgfx::TextureHandle m_texChainTex[TEX_CHAIN_LEN]; + + uint32_t m_width; + uint32_t m_height; + uint32_t m_debug; + uint32_t m_reset; + + float m_intensity = 1.0f; + + uint32_t m_oldWidth; + uint32_t m_oldHeight; + uint32_t m_oldReset; + + int32_t m_scrollArea; + + entry::MouseState m_mouseState; + + const bgfx::Caps* m_caps; + int64_t m_timeOffset; +}; + +} // namespace + +ENTRY_IMPLEMENT_MAIN(ExampleDeferred, "38-bloom", "Bloom."); diff --git a/examples/38-bloom/fs_albedo_output.sc b/examples/38-bloom/fs_albedo_output.sc new file mode 100644 index 000000000..85605736d --- /dev/null +++ b/examples/38-bloom/fs_albedo_output.sc @@ -0,0 +1,22 @@ +$input v_wpos, v_view, v_normal, v_tangent, v_bitangent, v_texcoord0 + +/* + * Copyright 2018 Eric Arnebäck. All rights reserved. + * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause + */ + +#include "../common/common.sh" + + +uniform vec4 u_color; + +void main() +{ + // the albedo-buffer of the g-buffer. + gl_FragData[0] = u_color; + + // for convenience, we also output the same color, to the first texture of the texture chain used for bloom. + // this color will now be bloomed, in the following passes. + gl_FragData[1] = u_color; + +} diff --git a/examples/38-bloom/fs_bloom_combine.sc b/examples/38-bloom/fs_bloom_combine.sc new file mode 100644 index 000000000..0fbe74fbe --- /dev/null +++ b/examples/38-bloom/fs_bloom_combine.sc @@ -0,0 +1,24 @@ +$input v_texcoord0 + +/* + * Copyright 2011-2018 Branimir Karadzic. All rights reserved. + * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause + */ + +#include "../common/common.sh" + +SAMPLER2D(s_albedo, 0); +SAMPLER2D(s_light, 1); + +void main() +{ + vec3 hdrColor = texture2D(s_albedo, v_texcoord0).rgb; + + hdrColor += texture2D(s_light, v_texcoord0).rgb; + + // instead of some fancy tonemapping operator, we just clamp it, to keep it simple. + vec3 finalColor = clamp(hdrColor, 0.0, 1.0); + + float g = 2.2; + gl_FragColor = vec4(pow(finalColor, vec3(1.0 / g, 1.0 / g, 1.0 / g) ), 1.0); +} diff --git a/examples/38-bloom/fs_downsample.sc b/examples/38-bloom/fs_downsample.sc new file mode 100644 index 000000000..8a4f40ed1 --- /dev/null +++ b/examples/38-bloom/fs_downsample.sc @@ -0,0 +1,42 @@ +$input v_texcoord0 + +/* + * Copyright 2018 Eric Arnebäck. All rights reserved. + * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause + */ + +#include "../common/common.sh" + +SAMPLER2D(s_tex, 0); + +// pixel size of the target texture. +uniform vec4 u_pixelSize; + +void main() +{ + vec2 halfpixel = 0.5 * vec2(u_pixelSize.x, u_pixelSize.y); + vec2 oneepixel = 1.0 * vec2(u_pixelSize.x, u_pixelSize.y); + + vec2 uv = v_texcoord0.xy; + + vec4 sum = vec4(0.0, 0.0, 0.0, 0.0); + + sum += (4.0/32.0) * texture2D(s_tex, uv).rgba; + + sum += (4.0/32.0) * texture2D(s_tex, uv + vec2(-halfpixel.x, -halfpixel.y)); + sum += (4.0/32.0) * texture2D(s_tex, uv + vec2(+halfpixel.x, +halfpixel.y)); + sum += (4.0/32.0) * texture2D(s_tex, uv + vec2(+halfpixel.x, -halfpixel.y)); + sum += (4.0/32.0) * texture2D(s_tex, uv + vec2(-halfpixel.x, +halfpixel.y) ); + + sum += (2.0/32.0) * texture2D(s_tex, uv + vec2(+oneepixel.x, 0.0)); + sum += (2.0/32.0) * texture2D(s_tex, uv + vec2(-oneepixel.x, 0.0)); + sum += (2.0/32.0) * texture2D(s_tex, uv + vec2(0.0, +oneepixel.y)); + sum += (2.0/32.0) * texture2D(s_tex, uv + vec2(0.0, -oneepixel.y)); + + sum += (1.0/32.0) * texture2D(s_tex, uv + vec2(+oneepixel.x, +oneepixel.y)); + sum += (1.0/32.0) * texture2D(s_tex, uv + vec2(-oneepixel.x, +oneepixel.y)); + sum += (1.0/32.0) * texture2D(s_tex, uv + vec2(+oneepixel.x, -oneepixel.y)); + sum += (1.0/32.0) * texture2D(s_tex, uv + vec2(-oneepixel.x, -oneepixel.y)); + + gl_FragColor.xyzw = sum; +} diff --git a/examples/38-bloom/fs_upsample.sc b/examples/38-bloom/fs_upsample.sc new file mode 100644 index 000000000..c6ad1f63c --- /dev/null +++ b/examples/38-bloom/fs_upsample.sc @@ -0,0 +1,31 @@ +$input v_texcoord0 + +#include "../common/common.sh" + +SAMPLER2D(s_tex, 0); +//SAMPLER2D(s_target_tex, 1); + +uniform vec4 u_pixelSize; +uniform vec4 u_intensity; + +void main() +{ + vec2 halfpixel = 1.0 * vec2(u_pixelSize.x, u_pixelSize.y); + vec2 uv = v_texcoord0.xy; + + vec4 sum = vec4(0.0, 0.0, 0.0, 0.0); + + sum += (2.0 / 16.0) * texture2D(s_tex, uv + vec2(-halfpixel.x , 0.0)); + sum += (2.0 / 16.0) * texture2D(s_tex, uv + vec2(0.0, halfpixel.y)); + sum += (2.0 / 16.0) * texture2D(s_tex, uv + vec2(halfpixel.x , 0.0)); + sum += (2.0 / 16.0) * texture2D(s_tex, uv + vec2(0.0, -halfpixel.y)); + + sum += (1.0 / 16.0) * texture2D(s_tex, uv + vec2(-halfpixel.x, -halfpixel.y)); + sum += (1.0 / 16.0) * texture2D(s_tex, uv + vec2(-halfpixel.x, halfpixel.y)); + sum += (1.0 / 16.0) * texture2D(s_tex, uv + vec2(halfpixel.x, -halfpixel.y)); + sum += (1.0 / 16.0) * texture2D(s_tex, uv + vec2(halfpixel.x, halfpixel.y)); + + sum += (4.0 / 16.0) * texture2D(s_tex, uv); + + gl_FragColor.xyzw = u_intensity.x * sum; +} diff --git a/examples/38-bloom/makefile b/examples/38-bloom/makefile new file mode 100644 index 000000000..171709170 --- /dev/null +++ b/examples/38-bloom/makefile @@ -0,0 +1,10 @@ +# +# Copyright 2011-2018 Branimir Karadzic. All rights reserved. +# License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause +# + +BGFX_DIR=../.. +RUNTIME_DIR=$(BGFX_DIR)/examples/runtime +BUILD_DIR=../../.build + +include $(BGFX_DIR)/scripts/shader.mk diff --git a/examples/38-bloom/screenshot.png b/examples/38-bloom/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..531bbd4bab5f174b0385382bd75af82229ff0194 GIT binary patch literal 139145 zcmeFZc{JN=+cw;4RV!7UL|auIb|*u1GL({{I;*zCOsHy1G1OF3QWTwaQr$HKZOsG` zGcjzGsu)TTgwiI4h#?XZNxm!l-uJ!T_w&5p`rh@eXTATt*4k??%I|lL=Xo5*d7OEC zCo#im^RV$h z5dW=la8P4 zf@^nC(89#|^VB01oL-$T(}w=W_Xe~7I#L;LQxM8f$M%cosYm^d3xnTGCK;ap^Xu*S zm5uxzi(5JZWFr1~8cS{)z~XhAYGNK$f1TRXkXikYUp;RqBggIY!P^KA#6O}}{4ovB z3*PaMV}3JDQJsaC_*Eg0PzR5CJeY06IsT6=OuYtor^mUvGQ-6ozN3xLoo+Xkwi%u` zwe!c_8?66pd?(=rDcDJjjl?ujh*n|5FebH{I2~YKgo`nI+ECOeyQ-k^xu0JXDXsYq z^}anhmTjo>@0(5@8ck~r3FL9^vqzMAqE`C54*|r-~5g9hw zlRJ+qL-V=&Y3o4{c;d5SiOTee%gZ5r`p1~9vqJ({@i(@&yqr@CH8VYFVxT9*Ktf*A z%YKdkuac72GL2V9eF(u_Pt?-#pRz#p6*|r7bmdxWpa#nc(CyplW6f^}KD0Ig51gCM zk@{%23V+6vDJmXmO#J5GTIxMo-AxEuA z0aIyrulZmz*(B{+hcs;YM!cHaFCuz4OoH{nE$^~NiFe>gq-@dMZy%aDVtRCQB07{< zrD9cdq;OD%+ZVV_dQZX}zM!C};4yo!u@IhZhQ{Q6JNW!yheq>?UHvJ^Z!Jbqwr-({ z=Ii(Ds&@)j+*QaW6PJ^l?XV$p&D=QR^1(9))ia`aOC-#+`Io`_qtBZkw5F{WveIGQ zRQ_}Tmph4@6bd*njKeErQs4yyddW#xIpTUgSXj-Qp63vbGdM(H)pe|{PMOYbuBE1b zzf1af1+#jRi6rOScNAN$av{48lzPwgnnI7+WGIBp=$-tdawJNQH4?3G-J?YDT>QG- zm7DPGOgu?-9JhpK|#gxQ{E;alot5g|7b!3;H`YH^ib#5#ex_FZzGEw@dZ zx#&3GDCfCIlYT)^=Z_tR&Egy>IT&?*zoJY;!CB6L&l}#h&^Id%8hpB)bXK@L|M*6`e|JIO?2_;CvT29ELe=kC`uec!hff6$vq!Jg>l4$Hf?9AtAX7tC+GT_Kry#0V#&o!I^QM6kKqWkePI z+q{5@@68zbP5iuSt}F4IStfF7XDC#&|NHRpqN%c`_Q=C+tQXqT?VO=tlBfA`o!&HY zu%3&fF+4^|I|(YtN10hV$71fX=p8(rE|PvDV)=(G+ImW~47yf^4#%JOT4V%H=9X}Y zSl`aehFM~$XJ{UU$|XUI$WX2&HiE&fe*S!+!A`@y_XbhGb;Eq{&X?}cXjpM|WVUj5 zLSBSp_nudL`Xi0Ajy=^kYJ4?rfRoX!)y z)jqWA7_D4!Y!4d3y%w`ahYjJk`jKsE<|BQ~k#;7CS!~MgYoY3t5>HM#x1R}}uthKZ zY(_Og&C3Mb$v2ex6vXj&wM*{GDlACj6MFnudGuch$|*|{!gs&oI^#&JU?07HIR$HU zg3szQUZ|B&U||)Iq%J%sS8N&t<=O1zDMF+#bd{MYom>&%N&KKfH_>Ei(-M4^=OuXW z-swoF?tW$|lVbE#Ufun@upfG^z@@3yKR(M1Rh;>)Hh497(G%~PelgAXHuu$;Rhy#G z>f*g^@_FYgf4;MRtw#m-ecF7-I*Rh0q8nX}t#+qaADJh~I?w)*#*Uc4E$GPWFupI= z&HA!33om{|xfOy(QY|xBUmx#h2Edm+q>h%MgtgC_u zh%%&Js*Xl`V{6*jx~@B(<>QA!$6j4r7WC@x?TH$;4D0Z*q$Bm>7syGUOI*7Z`81gD z_mD;eIBW&@qn)yL_fv@LTc-N(e0aoRqYq=ACHCEQ7q#Oe(=YA`{G^bvt}AROw_WE~EI1Eqv|8OP*O_+AW5EvcUHLwq zwypm}&xK%JME+nJqaQC&zEPw*h!OJ9h>&BO z)Lh2~ni}e=_AV=`KqORF`Jzsl9o&(lXtT>duQMtS`p!zhmh$X*`ebM-Q*p(fe>S3< z-%KU34x}uJ8BihE0ro7|SrfEAJHNs7Xj&*J~~n+H;hhW|eAic#qEZ=ow= zzB?VMRJ(Ocs6y%A0q%eQF%5uWbcV0k#vR-(H?6$>Mi?@Hk6eMQ0Cl(N7tg!Yt_UiC zy&O^b|1}7|b^{^+Rg-B(@uy)hYFXl=jQuMfm^F|>HI%je1Q10&vzX%1^;}NFHF}f$ zYYG5@xk3<)2`Eaj;fn+Nvo5U|sA2$}10uMUD9_mz-g)fNo3F>L;@FAe1i_&`O5hLH zlx4JHuJFi*=yWVPXwJ{WBd?mzrUdmmL@(h?BGIr`s~aDb(hXRuwo%!RZ8fI0Yl@S*$85_ zfL%gdFsLl|o8*$#Ee|r$aXGt++L;I;H;z3$NWoMEEw~b}U?L>k@uK;@?>{0TvRumJ zBR(tlP?UNrDFnAT5_JAPgFyBL*h#?lqMP5iF&rJvUM3FT&z|B9M@YXm2_P>1fM6y( z^Z7+x*Sij5Lpp_n`b1;hr9Y$>r~IqrXq)x|xTp4Cff!e9_G$17Bc%Y}K? zCCAE`%S-co+H9ZCqE^6k4i+OQV>2ikW&Ci+v6*ycKT~vBWLA#z5x-(IZI5#b7(61adB==3N_X6=`wO{znDU;|Nbk+E7k&B zvVi1??rfSd#}9Riy^#pm5>0)7>X8+540Qw1?WW-hX7@i3RI*M+q79-!4B%dWG=yCd zC>yT)?*=dsZx9}QG1T|aoZ=mo*Q{fP-h1azdoXg*zB{m<<*QCxw6b z6#><*Pq^kdx>+i(nlw6Z#A))=NiAF%Udq57Xul_}`Fl&_fy72y{IoGE=)BX)5OFUO zO^rL6P2DaRONKa$s;uV$y6rc=UO!Su(#ZWJFfE!{c+^t&Z=qY!;_~RJyA68?SPXi> zlRqzkU1ZvZ(nh&MJcWPoBkRQ`c1+S}yy-2BqSfMmj5h)x&+h(L$iWPaA>mtH{#Wyb z@(N6r_H|*He?opYb;!T8`LChdHNd;Y)#0gr(Zf?~gucV0g zU7lBk*fa7UlihTMUgFRB$t{V2UH!w%5Mzg-h1wR4o~@!?Bu%<`@*4t|IhL14w@LB2 zZCah82iiYGe~qcUMDx^cDpScS74*hLzU$za98Cx)60m5hJR6G9e@+2JlY!yRM+=rxdGFvA-tqiN>w~Fo!7kg|27jv7oN(*Mq~xIm6HGi`4vkGwkiWL#o@ceUGbgn7 zaMmQsVuZ!TautC@h6Ze=h^Vu8S%#}4q`;to%$K%t^urio9p<|IB3}>kqN6~`SaHs- z#;hu_z`?UnUcS+@38_2MHTa(P+ES2;{u=c3>*Jk z_(epjkb@C+e{3ti96j=W=FBzkQO8@6=pN)`Fe|;ZojFKE7a{Up%dhFSdV1oRRlj|5JDz~+akvt&x{*nFlEgK z7T=quP>W6S7U~Tl2kT)Xeqi{~D7{)Zi*SxV5x@MB)TsL2gSSXRrSBy{q?FI;b7zQ|7MS$suJhc$Y;NJ>Y=0p;Va+3M;`j+scjykEi?-q zmu4=)!)tY$5MJ@sbKHu4zZQSkaL{5if=Aj^gu00J!6Wo`Jao_);C&kM#VlK7yW_Le z#8~DKOd!_Dcr#)3Hcg3H(rp@ z&^-jFBOQ@?PJiw+UR5y8p@_BCjH#t_DNQ)7K56CL#2#4i5TZSLFALJP@DnEd9Gw_s zJLhL1n&Vy;zCllU7(a0_3e7^T48dT7&5j~rKLhUqT5ksDP{@KYJndWGcf0H!JVTw& zmL&$)Bl2(8Z!qWP5jh(|c_hqyM0sC4sgsDA{jBhPAwJafl@HLs&XLBWCtIH*Cq9>) z&0=B}Gl{rJv`|12%KWY$lCMuRg&mAU%MLC+f`zIdcj#_z4sENP(B)53br-ODns-JD znmN)J=*W~LzQvcO_Lyp^f4^;{tg$Itn}Wcdi25v(IOG-^qRwE|8|!k?fAssX-Ltab z!btO6f-8(d4ksRrMkGrwkHw*n+*RscM=JD*L_=Tqom!6y%4YE5&8dQ+hv-be_m%1R zVk@G%O*m&K_omi=9DK+oZ8CNf50)=kN%zNdvUmxkI!I~KI5H((CFz6{!v%eRp$kh) z2swoKUTScCPBt^2s&XTEEK`=xN4aJzv3Mh0suP1T{IffsSiXOE3~+K2^e=N9S4olL zvnArcd*v?)&e@S@EvTRm&w?^FshBoO`JnkC=^X@}vy0?csl>t?YPuI}u(l=JG0%<$ zg);duZ))Rph;3pQdHhdTr&+QSNB%fbe48o7(HW1nfpYu44{K2Q=ZuLzlE%ugf}h!F zr_|j0ZZy2Oj{B7Y`AJE>`>q)Y1-?$%kqf3Ebv#5v8!b1R=e0|t2$5IaSHFBfpcH%R zj=KuagcU0m#G>OD6tS5S(HZuhgDP9fFfg3`Q;rqC6a zSJ9k~RL&@n%w_USd)7Gdiv{VDIn|z`*QS302TUFly6(hQ?*MHbLwlcxLdO`cy1oxZXuLj*T-9g)Tg3LkTv$?usauNZ7@ z<$PNg;HAcZCz;-{HWdo^3!u8fCOI)Cdka4L5UWFZ6A{w78C~hds&fKR;b2WyFngY= zR$EjAFzxPG_f8L1BvQXt1#`F*#=P`UFg+!DSsj#8ioVdk=Q|i+&Uz5}{z4xcAi1e~ z3}}`mR$H$;c+>4nGEqPn@*(Mz-)VlmKT1mO7g!%wzZ-6;_Pa=4!>DY&D$}Sl_vHY3 zSR-KC1~$V5bq9t-VDY!KF+1-D8T2p*?1Jouwa+6T0OFUK z6{AMBlf()|db|)2^>MHOR(Il!wg`Zvmnm!G6$bM#(_7?Gg}P@vfZompWr)Sq8IiX! z%cBY$?Ta_1}lfcBvv*-rvu%xk8CPwNRTD1A+Wk+VL%x!y?x zatrTy=C;8T_upYxrXzb$q2#>uN<62V6$s@E3N$Fmh?`r{EM* zxu$S$qarTct=IP^#LJz+V-j%zgMQ|(_MWK3@_RuZ3qJ%&Shs0+DYg0-wBORuX0ggN z1xuj4HMxGY5UYbAsYz*qs+f=(${D=P^Td&Jt>ez3$2&iBff~+rTxvdyrRSCmW%*6^ zER?{{(~%>Nn%9b`DrX6q`QYK2*)@=2itnIkw|GXY{R@(NbR&Si_8ZlWT3v+(%CMH- zgeg&|M@NzgCpPNB99Iu}VtACX$^11N_@GWWWxn4kcuM;Y{3+1FLQZ}<4PCbUj9k>@ zdi)#MGh*6S-uJ$BV}lcbn&&{BFHJ$QFBrOC2b9K|X$6)GaYoriSBm$tDy9m*E+0)| zUsKCoEZlo&Jej`C!x~ z<%xf=2&$>GI2m2emsbb)`6u4rMopcCib>$=!^f*em_I>L{k4hD#}sTLSUgX1XMx1{WOT{;KWe+)B)tr*r^l5LO1oj{SGSAi=->~;nwgh z0J5Vmu?H$a!JF3XsswqXD_r&w2E?bjrNpQl+p<=hy}LTzqx@)KNKIOgRr?(WY~({W zPNit%!#%kj+Wt8THI{09q7u1zN@R&bPP^&=#w{B@E6y(&|Dq@ShAJ8S75%_$r|jD7 zuqT`Nq8c880_|Hrr2VqplgDNRjXu}lI^ZJT>wUSKk`P&}zCf{y(_rBVx0YE?PHW#qUB{@G;iVgUILVGL$6a9cUpaf-Xel4->=-*p4Pn^}MoPQ+wX> zRNzBso+Xt5s)_cyAT0OQTOiSlz?VW$*l z`t5_7AmB*Gr%z1iN+oVI1q%xeQoSx2eW2byGQkTE;Pb9|HYXR zGz>N2UjyA(F#e5g*(>Og4UTf~stnbrBX81viR4E1Sy(;TjYebPi+!flnfYDg|CT(c z_vuJbr#3v{E@PWLRConOY04^V*~Q%%tV;#D_=sw?eM;-Iou{6dMu@xjr`aO=i(CX~ zAh6FWHHBxXRG{-;<05aG>D@&UT)yzR3-bmQXMBEbKZ68#Szi}Y?M|@G4#6WE`tTDr zdKQ8DFbXxzjBh(oqZqgY`u6Wv|EbySGY;elP$`&AZ|+yD@~=8~T%})M z*Lt=mjoOcNb)ZOT47@x$6b?r8;^xN-ODUg1qk8NnX%`hj-)?;HG1VlRQDILSz_*;` z4dgJ@8#F?$C4;m*Aj_t`%9edK+SOf6I{F}DkBkp3Euin9yK6aa(4pU{B_a}W^O zW7j;MK8ZpXhvRgjJK9`mM~?lW>`6ync(!8%Tc5;1j=C`hOT9n(Ah_(6LN+J_g%u)8 z%M_`b-onS!JO+BpR9cb>XhGD^MKs?6!RM^okcS4uxqSZ%O{c)V_-s@~6WEHhZvU~K zR=lRbV^B-v0`ZZ%8K~yme$H5PWG$`ui5GA@xdPzlBPT;z0nL7H;scY#$5VG(+p}@i zR@nPLHVhUxMi+yca~bX{K(*;eY-q6$C2VmXE1Z&eoQKNXxaX{eC}YxrCFA4QI8`$6 z3LPx5Tt7ckFU{K%MBk?aj4FP><?}mdd9(ws8KcDbJ1EgF0O;EdIaX>qx7$`tW(Mw+uha$28cB%IqeSPq12q>Wy3c$j3PU46| zR1sC;6NNk&OmicaQm0D>b3G$>3i48UCivIy$mIve%MrsOyBiIQv6DS!Lyz_Z>-N~6 z-d;<+ODoacgIS&xutA-)pK0PX#TxHg0Mnma(+J`rmrTG!FfupFsb2%$Dk9IJcc9G2 zkCdb%a%43qq}yZdmBS0p0JgILfO#U-jN-Ac4FH@OXc(URoQ^L2-G3b?!x8eOgvw_ezP~gz)Wx#y{`p^}Y`Q^d7B7344fMJ;?!N-1asdxjL7ibUzfJsd1O|#9zW{ zhx&Dxga|eu`IaK|acGT6_O+r}$P2zud-TBc>&Tl zEz8~MX2R0GcyOiJqD+a829$AW>>lcod)Atj#6npR1zKe9N-EITnqxq8v z-bhLy7@S{Q!Wn^jyz3J1URi@n;Q_NL%*rM58J=jFw~@v;qM%%%8lWDfKy)_Cs`7q; zLXPFZSYT%ZL*-}X*<)+AT--f^)zBjJ^g~Ub0^cOy8;j(Eb93iFru*RmK+)J_c(@qx zw#QIqpdtH|S?=AiVNluRlYwlq!1Ev-dp7Ns!%#n@_dvv^?WE6)y&Ut0bSQ5xdQv!C zl>vN^7zMee8J@ZdnQLuBM>e5nY9-2DyR#zp09n#j&XIREoU;kG>;+q2L}mCuV(D;?a|Hx&0AFw7`4=SaxI44UOfcJWKoq7@uV#3<%zn0-x>!#=7Tk;Fm@6Ml+wGjqG}j zvMM*)R-DytZ~b2UD_dSVCKwn!;qRXMN+HZYmS6#kF6!3YxE(4X*5PhPTv(r;}Z>m(S8zgWlq;|6KA-eccl+mm&3Su#g zWE8lqRStnb|Iq9Oue)LO2teE7&CzgGD<`K?WAz^OM3G06wZ_7_wLa}*e=#7WIV~ON z@GNx-xekA>{V;?t0NL=jriQeA6#RyW$xsS-&Z&M*ZM7=9@&bwLP6m0Ch%u$jCp znrb#r;7CaA0wK?lRtW;-8yw?Is5-n)&510gVZEavZ7anMvL4l%lcidYE0FPKl=+2n zS+fZ1_0EuxwUmf?8BXOHIaNrLJKQE1Rr`LSK1tRY26VkyD)2Mbwb;9-lFW-*%2lfu z>kz*kSgu~E?H~SdPyUDz0PMGmLfxsuI*>~$$02qUWEpS@!e;QBzbWoRSp@)wt+*!l zN=J1-2g)pLS19yHtt5YnXFuZV0<}pAU8%2$3hzlGTZ2$zxf)(K7(fjbFroRqZ(EY* zNHW|=C0x$dZ;F#s)ChU5<;%PKj5SXews)j?uM0Ev4f1>|ZmTZ8lwZF|X|CF+gfP=A zv)8f|NjkAHDZ*LCuV)iP@*^+LrtFr;T71ahl4BTR^QV44cc*@PYv6U|pU9u-wxfKf z0d??D35B4NBdNIBq+qnJ_ESMinKNA$?BrXxiB+i#nxx25-uMjdS$Aa{cW3s4jpnpI zvES6;8kNR1jpSuY@;0i zXb$vBtOjec51)=GfSNWNT6QNznwg2;B^l$r+QXHz*Flm7&2G_=?yJ{B)K!uTy?g*h zLo0|Jq65^%7HA|eJtsvVV_!hUten8x3JSf8sJTX<{!jRzgK1M-P^L=)PwJ~p!Km0! z^=ja)%_6qsz`OeVDJ1>N+HG})+3rP|S;gP4Q#F&xd{AxAzg%%;VAbOukCHT4~nQ-WmI>wS(yBNM!%gk=x= zik-D>0aau33nY!mH2wb!tl}2z5Ut=nA0p3pOdN*v&H{Cd0#xRC)WO3w~x~>N*+wl$h;biDkpJrbfDgo8vyZK804v}mi;IWr= zvvVM6Ki5%IdhvU^!hho_hsOrzNA3-Fa;CsfP16F5!u@b_8n%w0D!;v>S!-}<0Uyq>zj+OuO90F;1)piz4!SG zWFEF+p+gr50d`^s=&$~_*73UXl}PFWJ%-TNZ<^E{EHVYb9FKE#|BWcfaIX>REmaQe zgp;HFcXP_KN=LueXZ;M%EXuTyvAXdYzGuXx^z+CELHv_QpG>X;Q+E4y&61tj9#7d! zAS)|+FWh#dJ=gs@bFQ~{yZNB`9y6J^i2>+6sJR+o7%o{8%AfEL)HAl9-7)1k_B%4^ z^3Gc({}vf%BG1x!qd=(PU=!*67kK!Yt}IS!_7?NsvbCy!EB`gA=2Pbi_yHV9sVDQZ zYUyH!Wt!V;Z48w^|N7giCvsalnRc4a&S}1iB1MJiNPY5H@Zt>Z-PLp#l*u6+loNHM>7Mklkec# zXpRHvumjXt+y=}2_>5wvh^2uBoU41bp)tUGZ#X2ZK62zpyR~N(JVx`!qp{$HNirFv zk#P`PbAd!02W)q}7}Z`~pp5T#bOIts+`yi9adGLOMud44iUXdxF}7K*)i`JdU_CyZ z)GjKfTzs+Ha%?dl-=_5yX8z`o5u4JJthc5LBaQ1O0B zvB%&<$)t#|CFul1&-8qDYs~avK1!-fRPI3co&bfJK|C_%PxB=pJ6dI=qv;8$BAM5>`Sro-k1w>Y zU^o@jabV;GPMt`MNOd`8U9224=TUFnLidRGEs{>&q1J`G{Ie% z{L=xNXIG_F7Aooi0icdo3$F>Uu@ANYK35hP1rC#FPX&Z@k)oVjxC*fKJzYSjTEx}@ zd}|D14+Bj*VXU+8mf8a(31-PR{T7k7&ZSTV{zOzQo21KYWyXY>L4Q~hU+AzcXo9eT z0UOvCNdNA;jFQbuA_2J2(_eQI??zSN(=T$D=Se(N!Ejf#F?cDfM8jji0tXr!K$gaW z&LC#Mi{p?h4DHZ9r?@4@faZg7i;i&8>=F?k+~@sZ;amwGdX>{aOM}-n9eN+F6_QRM~1zChxVxf@!%&U3sT`X z`K~Za1$cvT*YGt*?~@eg)=BLeGar!Jt=TT!m!s8M3?9{nJGU`wYlP2sC={C6{&d&L zJC8)A1TLty9W;PxH&t9!F62(1gCjp7C!Fg=7lWpQUJG_NkT_~~q{6Rch zq~IZ}F`|AMQBM||Lbi|_3Yj;8J(A*dTgS0NrK zk{}XM5MRKLs2Cytj;8Eg2EkPya`7W2b*h4e0d}V5@kWq8tv|}VF2+X2HGmu>&jtI0 z&G`Ybu)hzin1>M*&L==P0F2>=0#1l_a>^fkfdP@3&orCaBX6^EEkU8V>#7Ju!&n=L zp0$_3*?9^~#ipPwMDPnH#}F|aXm08ZXci!g+KohAA+Q_Tvwv*kXX$5u=l*3Cp5v5k zcA>Q;azXKvI}!(Sw$HeGeB=YOOeZ+fzm+IhP$jyyhATl-MM#L7Vve(`TINeg@5%X7 zg!Ve&Z2Uel44RY(TCW6e`@B9QzJnf~Y4b609J6$E6Gk!5NLpq5_dxaO9$mLM@mM|j z_-%^vcl;FtvOg#|coli$&#B(0>RyzK2aQS}zaX6*i71M?FaXTY0-nja1%I^gwMn2~N|Qsaaz<1d^Zz=x^f#ouw$0$2J@) znK^0WvWLCbAAHB$lkHgpIoy-Iu$IPl#VzUAe*ZDx!6;II>_#b1Esyv|TEahu z+SLZs+W2-D3YO}5BEaG@4mGm^M#(jx+oxalneC08F4Szgx9`jfxirfL)YGo8yE07< z3kgPngw0C!GT!WJ;5xc)dE6=ILu>daP_|s6NS|i$#@-k&x3}3@$Ht0l6(7HlAEQH> zexj5&gP~Rhmnh8j`8$%ZKrDuqT539`7;U!ee|s%^eNn!$W*q!Qq|)52@u8{;#7<|D zRuNf5bnyL4IafOB3TDI(nV|qq>1C>`k&C0TF*}NV$8TZ0rR3H?cBuFUgY5TY%2DQl z`a0+XOF)A!KQC-&4)~B3))>1H;g|XstzSAjWEeq?9b@4qO5a@9YQ`K&iHsI0^_ggatlBBv(A~1OFQ048!k z6>D#UzU;QdIcF1NmD85hA%U+rxv$&mZ2_dPe7B{ZB54|Vq&7(U|;t?o1J zopH@?Ogg#)-26v{`QOA6hHccVy0bXpYyMo;(|Im)){ znkm=1f>mgspM-bg_@0fRyHNGPB?mQESs zUA4ZqgFRA0(@|Sq#prU6lp!vI$K(?P7tKGVMKrC{Jng=WiX0ejd1Yx|f}!a121GCW zu{lwn6x?lu1E`JUNr)R*iNYu}XtP*|xM*H#_9{hG=}8eK^4B_UZP4ueqgXRN=Y3fC z`E@*NIHSsBg~dOF~}Z(sH)!s?R8Mg zXZw}c^QQuW-=!?nD>8C)*mjl%#6w0O7G)wj_L40u+?&#a4y6_xt$^NN7yE#H#=1Mj z&2J=Q@7`y}8gG7RC+SLL&)EQB`4vay{;{hdg!QW2*_5R|KD+{c!pjVZ0EO{t6O8l- zw0ujyq}=Ons}pj)TzPN79bEOb?nHc}3vI`7`v-`90YJpoj3@_lE|$c>?c_l%6TSIv ztc~7Y6X5xOK{(pfkb6z;(RC()%Fuy)$$8Ss1>8XvkW$w##qXmdFR1JELk|{I_p47v z*lMh=J7k08QaQCYtpbyoSk)9l2yafATNTfQ+m_^{ATDQfq6`g)01I*%g~ir>350#?d!Fgw+xnfA$o*nacEZ{0%|$5n z!JfLDVFIDcj7wP6);N^b8kM~kbu&h!aZ5Yp!q{g%eYmiD6L2wkimW`%{Hv1uIv8}7 zm9_HQji4kPk7~hBo_T)r>O1AxrU6|!?L#)9$Ps5v%_35Zu8DPJL*syq$2-srKir<@ zM6xL&)wa2i45mQG?L90I3IqiL3e_OX@CtqS-`op8i-mktKJSA9{B_e+nd|Vi*kM-P39R71el3b0m;VVg#7q@}#*H_#A)sWYr_fzt7 zON-1~`HY;1FMd^Pe(s81Gs3+ldd!i>f4@H2OZ>*?pOUp#>Sg{2C71Tw?#lC4gpiS< zVV)N?BR;o|u(5HtW zej%4_7|-r4Xtb)?IpobAdpvpSAXwOzy?-|%O0>%C|NKKTv(9Fpd5z3VahuiFZc8i;>5-D=l?It>;x;K}H8N2<%^yI$#JwEg zoA#3z>TDQNrCb*X`t^nqtzzt)l;QMlBN2} zqmtFnl#ZOr^ZHh*eQH||HNuBYf|oNferUrkn? zaT{<9p9ihArib#9zck346St|2RidBFyU{9>Tvn$(Dmi&8(@ZjN)W!z2p|qblk?wZZ z#t~^Vy4x#MH?vgN=kJG=gxAD?6^(tWv=_|k>`rqFCz}zo)2n>Mo$}6olc@poi@V|{ zK}Khm=6TvM{1%k@1IUY|jUAX!?8yhSP9J-qyMDc-ob>trp`(0_X;$tQElX(wX zWbPWS!8z}RN`12#`JnXZRNisb*j@Yb7~pYkV3*hj`^j{R(#Ef9d3m$arMjnN$(%6J z@sv6t>Wxiw9tPI;M^9!dpU6I~^SgHX?Y&6zjt5G+(T4Q}&iA2Gy*3UB8zcgcsa>u0 zvw1&R-ogIeS)q;(;S8Q{I;7>_F{?I`tlA^aD;0x*Yw6M^Qx|H& zhVZr)?k+r_7@49llCQM;;qP9Tpi&*Fde*0(`H0^Svy!OsOFGBu?E1%o&zd|9M6J@l4N8lFQFTwSDTTymkiVha^|bNs^a*?^5i`tko=?UGE|zioCu+ zrABO05;JXA+tAcH)E`o0Jpzi1GsS95M-=}2B$d>A4x)vGG>D@c0q#j<9yf1i+YU=E z)wOJ0jNQT3BfOkg{mfYN5=6p%WagX9_n+Gjlz;SxArj-1%guf?Oj<}3 z-OVf8L>ELmyC@9n4O)xo);}c26rU))*WO{{fZZU0j@4I;Hr`KrwxB?&~fui z=6mvvPuqKohd7Mn<4%Vmx*xi3=w3rN*PK#1O1~NvvTtGQgxs@=4bcHox4x)`O}?KA zv~{pQy=r5$X!sp7xYKZqgwmo*7uk8LeKOH=LJa<6!Gj7GD13#&1(sGq&G4^XZDd3s{+%?8KLE zUP4B)s$Yj!FF%ahAig@}(DVJf;%+Wlm>+qsxOSt&gAU1>!iRqjJu-APIUpX4o*w){ zbSaR#o&Pa>tw%N^ww9%0m7QMVz97ADQtKQLEj6ksR{9GMoqJ{1q7Cb+AC})B*@vX+ zA+lcLZt9OdJhToQ<6^a`_RO`@891v6Q?{WYDzyE0$|^9$(_{DtIKxX{ zUz#nprdmap7ME;%92K6o`MAx79l5K(jzM7aB=|x=axM6L1Rrrs9(Y?dQxtBfjtx<0 zHMbsLfwb@b)F-#Lgdys$*C&88l4YNF9QRw^4N`;5ud>p*^3Dv?%qc|)uMo{CpLOUP z2U70pZ(g(%Ew*3svF}$iq&xCS;kvM?h{pD{A9g)Mo*ugz6}%yLTmQqN2Bf(aN4S4Cn>=#I4@Qm995d=s8%;Uk>Y2W6ijPh^loNB*(cmRM<<*hg8b6UcSdcZMa@lJDxPWF&6>$1+85H{{jeww#VSv{{O0 zrLW{Hh1weaQg!FlLEmfi?VWwYc;)NqFJElvIDUNn>iX^nBdhXD!BwtB_?CMHDhldS z5H1lgG6(zTDb4C_C)Hz0$yxBPOR(O@k2aYau0xC4UT{^G6B-P7gWxQ=S&H?<5scAh zHKImlS{w|wMy9uHal|&ZFw@n`CRuc0c5P7G7G9%zc%SUVIok{gbgzWeUWHxytG939 zC5u)KjI>{0+gVzE@9vqU+C9FP>AN~r9*|DQ=IyiHS{G)ox&GO@2Qu=4pTk50Hv^T7 z4Qk0j`f3>;Zip)$HkE9?{zdY!;h&%UmU`M8eB?vnjKYtNf=3ytroO}GWkE0IhYZil z)W}SI-nxmCnkpLS%ue%Cq>Td@YJb_Ho?Z8?OH5c%?$0=9`kYr@S!W23<&y)t9N=66Y?0Bhqqd%D>GriONJu+d$_Pm-& z?%RCNg_pbbscm!BL)lQq&K>(6R(?Yol`9?CzG^OI9~ZvrdGd+VtHE`Fwr{o4lbfm6 z1uL9%z8{uY**U1Yb_Z2jYS$EqPTsRmEKk7 z)!+8*URD!>2&*3ttHS9tNx@7NY;zk?K?I;YEi?6DjwYduotWZM3G;=6sfAgOYDi|| z1Vinqo#=$ltG+J{>viHlLiG|4{dF$9y6|Ce+wifJ@=QB*H8IVe?;A5?Z^+&AVhlXg zx*de=GK)8{dg$y-i`rL}Ji_1L76B2!eHFWs*fOkb6F+&?h|;v4C)d2Ogp ziYzNicLQ`{;VNC>U<`bHN7uKWu$xSd&@TF1>dIB2`62Lsxn)K^z4{ByOx7j9l>xFWQ27w>rk%f;Irpz|(XI)vHk;_)D!ej2Y=ILU@VGDcy_ks4y^nW-W1ALdD;L04=ZWsPEqTsbV!rvJ28)N?ErZUIZ zPDM{ms}=tVf$f0 zYW|bixxILPD4zB>SwsC{6e?v$)JPVEiB?MlXK}(mswm(km`zWZvQraOzwzA0Nf1lf zw-TmAcZ?BKerA<{L=^$HPB(CnI~RE3XE|kg3|js;U1)OfW4)REN{8RgL7sS=3JaSl zpgUcLWk=jy?QRrb!lLr`@^%Mq6rUxIQ!S3^P4cPTGIsKevLwwcz8y5ia2>^wl*JFi z1$T8h0$D>vdiFH0()ptC@u6-$m#1>W;@gb;V-b$sZ68?BCE#3fEs~8cPn@r%9xlO# zdiE?^6KGA*t|rWH%qIXus$I#+F}j6HY9l;+N)ktVGp~@=c1VIc?h3DrG^v@Yi=3?m z{KQJ-tz<^XXsikcTemf4PX)p!>vq=Q$xY5ecZ)8Es3i9}p@Y%g<$lP`L5vlIRo0z_ z<+Pg?1CRaBM9@q`t6NvTxh=NDB2}PINF1@wo*67XjGL+Y=f0u+x;^E7yO4>YnEgY0 z>4A20`u7$<4|HHK|H^7*>!;Pq;=9dV2KMlLd8)i6ASOfUETO@R|JZ3-Yo0#HGu3~t zY;Aa&e^d=XzK27HYlkQlKz0iJok}1!W4mV zjDavPt3Hi)_;!w9HwP^qZm1}^D>w*1 zcp2ikItpmYwtHery!tryp!id}OB}}Qqipz21hRUj>a@f9v#hTtK+zAt&0D8oNH~2LuASSt7|>bew}_;X1dmplJdzIQJ@fu_{}}PthTBtt?jc( zo9(RYrGKv%+bh@8UL%un;hNKDBX((JJsiAq#v<-5TmJBg ztZWtD{1@>aMb|$4mGD-DGwzg%IK!2$_OVkJ5{^jxG$UmW_Ly9N(TUKb+HB)nC>~al zfVh$L5IDNL(iV4|Avbu;K|$KN9+TH-zO%dBfB@D89HE7Pok=l(7!U^g!UrskEgDcv zy0IM}?T}_RKi{l=LGgL_7k0l4K%|=*JQH>RuK)-01_xVxO5!>M?1EgiLt;E!X1PsT zt0YOyk%S|VE;N&v3;#Os#&tqka4M2WZJ{gO5X^>F7K5?Xj#27j2kuB;)H)NKvnVRmPL#ka4LM0C>c1t;u~ zM4e2pbHufuCvhn3zGLS;DyIy_wSTbNPoz`q_7k{#{up6K`zCwwN~0=;=P@tA31N3T z=0uJos3o@C{z=6?A;J~BcYelc6`crw)s!E4AfjKpfB)3mV-5i*?3lQcx zl?GuqAz}oVMdG(zo_ie%Ss8=(_}(XmtH|W%I0~!}rDyxXTEkVuzIJ$5p8{-5n9wNPl?_CMTT^2uNQN{ z3j$1DBrGRfN{YT&`4C7_MpcC8F;(=lzc~Je!Px=P9qFhlA4c~iq5;6d-z;$b=rVRS zHolo*Q7FW+pE&E1!Q7PO8Ml;8KeZ<~b;DDXhde4Hq%k&xY6?7qL2#TB6{)#Z&%R|c zy>DcQ>0!XUGlF1L#ksmw?-jc75d9=AIu)d^GqFMJXvhybzilF(xX~7)6-k*_UogZ zI!3xE+3ZO!C!;_VR|bv&IB^D1+Hm}-t#`4uod^LMaF4QEo8bFy`j7znogXWU*caQ2 z541bdE!c)0`ojKt3&Q9UYR4da(%xoFtdbhYiY7m-x?25=V@+IBsr0uemuith*`K3+ z1Lsd#%KnNn=Z+7lPq0HFB~a-aji&p$M&?^DE(aM;zrsDzFA$@BVn?sBGpmR)t16kg zL5L_83^6OCXE!7HH^{q-D!fQt=6lHUg{~;fPbLSJ>+63jB+geeNH?s^!JesNaWQyfQZCTDlwt+L%N5Dt16 zBEWZ)Z7hsp!QF4awv7Xn@Bj6wv3;DgGs+x?U7d(CTi3g$uXKp)G&jW=h}l=$3oT45 z0gJ!MdF+esUb3I@;5)l6?-h*jcSkgpD#J<7pflXbA(lBr^~?Qf_a9`Nv#cf0j-7pe znZz{ueU_p~&a`7&xzFoEA~v9WBdHG?LScqFruJJU60}j~2wWAKv=FVrfK=f?snF=6S4tE^DCbz^1z(5zVR4y->|$*9DEz@S3r9NFVf;Dj&4* zHC1?k?C4%f*skUqNsCDC5_dQ!?#wCgc2XfWQAOsf$(e(9*<4TDnH<(N#T9lX*Z?DK zG2BXYB{2hcB}+(dz+(Y4(A~4@2_sV!{Uc%KJ`6a`L62*+elc(8x!>h}Klkqr=*2N> zW@-oGlGr@g&b7}6`*als%0}mYcnc9;8q;hC;Jfxu!QWuS?%(LjzBcO6B#I=)yZ0v} zq7GL4jN?0)%UXK(olPye+fPYmz{hFU$-t!rxHM-le&HxqM(@Whg zqv;6TBQ$9=+B&6;zYD_C>A;ix2P8)oQn&%BN>yP+YD&#%34e97SU^UJbqZmA1URH_ zAXvTD!^;!5s|EAP=f~m(y}h1BOw6bVr%yci8L{sjUr}u~G@&3q!Lj77SRQ+dfhRG> zanp_OeS)W3=QIo=m#r^;r9%b6ljzookfEM)Dq#;w93Tl&06Aq<1Ob>}#U~DN696ju zbWmacA5e)ewLXWtWP9yRCg{$@z7{w@L+k-j19=^nSl}Z+$!Bh^WdYxKf%Vvl{M{$A z`}YU7XfQVms7ZuZ%Cz@wpS#-p%z${1&K70tH(EMuP~j{#Tx7}BpvcpkJ+h-b@U2@t zs_CAy%QV5%nS#5$f@7wP3Hq#HLPBFJsivV@FXU)L+=oldhon)Ht#ARF0Si(^a!yr< z=;lpCV$Qq2F6!dJOnPHx^)L%24skWN+2mD6%2Zdq-1QCOGpbqh-)fBU>8?Ajyti9R zQP|E*D73I>y?xp|+~2%QFpn70#YY|s8Dn!k#lgTY((lA8?|xDtiB(1HUh2IY$rn`w zyE><>$=Bj>0yJY8D(57w3^i{>Vx$;*p*Z_-7uAxO0H=sWVQJR<$AscIHr26>FXe=H zn6#hTy`B(_trNO)+SNsCD?NZUh7nw#A1i>Uhsq)g)0cof{=xj~gM-`5c;I6ZrO8BtmD?Y($-Zfi&Tg^+}J8s);b{guyc-^c{tV=J8H+81!0}R4m=*|L+ z^(x^z1C_lMCl?g2M7l}17K!4nC}35K2Oj*_hes|AJ}nkdpfMDeZOvS2s?L!Z-FA(0 z{IQ5oI_NKxIWp*SVJz@Zj3J5~oV1?-R~S{I^)rtyo}BpwXJ-JMxy0s|^(jm4vf>bG z>*)sV${hPZZUnB5?Ac;WH(UIy>pqzMth4;F26=J3jq!PRav;qwBeN-we{?k=B*-LE z$5f0^!A%(x@ma|X`C+slY2v%}LYX!sgO-QMu;Z#sNei>o{i~Qx2&N|t^Y$#J-xfpW z!Hh~`CZZfLsxC=2dMtCV*hY{TP51J~PCm?`;4V){XU(ofNVjy<6*;)g+86I_tHh7B zL%LD}Dm7>Byo?mr<+VzDGJBRhCOxK@9jve%C+o(3wyS+PxSGwb>ypD+Cr|13N#7oG z96=u?-c*rH>M(+wa(bb>6(ii0CIZ0|*MIreKjdGMp?v=HS=qZD(gCZ}>y6Jky^7<8{UYNR_ z1YaV8@ZCF$@0J@AMx^4BP*SJcg%cGN8Jf`zD&OsbLR3ASTpDwu*enYK)lO7QF)W(u z(^VVh|0{5f?bB-eb(K7$8m=5iS1hy+u8S}|Jje$RE*(PVa#Q$$(E-8O@jq3nbejE%Qr7vn^R#E zRu#RaqI6lspib3lQ`I$H^}##U=rT7cVt_C)NP-w5M+_4qMruA!sWBAE?{w9Y$bTD- z9c~d&D*0#XuAf;$gnbv>FZgN1XjT^S{jeYQWsUqSSJV5C<=1CS$mN?e-edCFXy|i} z-cBX*wd8J%F%B;?c^Rg6Zi4THD=u*tb^Z=fb_(XfJjAJ7B~Tcs+^rxM6RDUwNvCqW zinwM}MiB|ZbxP)Yf%H(K%bQq=HTQj^?S%W*BBe(23D>kd=%1=WWwuysJNDG^^`2mO zdj0@7BBIEanKlrkfb9$YvVC#7?c)&s@MsaK-4~^+zmg;3-xK3orS(5Y?0kA@UnMkV z(0LS6-q{@S`E?O{C7F42F?MN34P|9Gy_2-@X)GK$V(E)%Q8p;WUgLvu7PW=k#DYvldn5VI<`ii4H?Bm zq@BR*yK0H$cP8#CC{>hBVc|n9MYR!z4<+PFLN9;%vtp{k&-rOYqlf2vv5#XuoQ+}G z!IwXA7(VoZ)m5J8Z#$us5a?codU0!pMT;#{pdt$59S2*tzk5<4p&1YN=(5c^>*OPe ziJMh{5oktKessZ0RK_ZaRmUU}CF@itLU{P=a>b3%#qv&NeE$t}8{i<){dK{QrR-(p zPd}Z(DZ1}E*UTuF6BuVSPabLiB+@VTAze_qdEP$}9gCW=&xW?2TIas8q7T}OQ#gUH8ZbP zmQSJAjm~XL_t~w@dS~e0sa4xC74BYJ_p_*z{;syf*u=lOqqfgSUUr^gYq~=CFzbmM05MqcpM4VJldVrdN{Mr-tdY!1R1df^w^BTvxr4>{dQ<=e>se z0bjS4bn1p4-&}+cF;tnj7lrxp!jG4DbUunL)b`feROzBV%Oks+Ya4xwhbQt%|Czds zRon4yAm+vA-#z#5x=xYfVAtimd-|+5!m?0-xlazJ)XiRti=`U3|{&kz%L) z>+T=K^HyIWP`DfvoX`gE<2>=|=R3n7icW!AJh8F(dYY*W^`cXYL{L&DiI0-<^*>H8 z7WLp4d8Okt?mq(KXUHv9sOgIY@8^c{r$z1Gh53sf4gWix&e_%ef#o5)&=FAVY-jW3 z*SWQRj(~6e!W_u91JU;cUDX1^Y~b@C?*tJ0KWq$(z8K#I1Ie8qT-Kg%vUvikCBQkfgx5W>pK9)bz?~mqmO+cjBMeyZ4?1jls^EY;HQ&0ukhmQZn^WqD zC*yIvb*xIrJ82&CxUR@wIT|2KT(a%bwhS>5tvosLvZ3*Y;z2)49D|A^(<>$;`)x$& zy0YX!bC)4o46p%PFl>@;1c~y?+%V?$Q(I*z&~}hG-rYk3o2Xdj&Kno2Tn20eh!-4t z2Y$ZQeUDH3no6U!8pDJ9>CL#O@NF8zDmN)ZKirvH4-|JQ*Q=YgIU)4&uLJlNnIRag0ee@IA+wh0^cx51f2G6w|gKlkgsu^-+c31EFY1`bbSl_2O1!TZ%DP5JdcqIdWqvb?%D>^do8EZ|c4arqcw|V}p5n z4bzW<6k77a8<6iayT+sth$P`_i|E^y z`W4yMW=JP(oY3!HPnCBKBjsk?AEBW!icWjicdZG1IqUM|(nsC;_~FXrcd)X2=9eiW zW4z`mBcIqLU|tnT^Z0tPPM56H*_T<*r+m$f{R1DI)OCvdin)M)>qNyU?<*s7GVK@r z#)s26V*(pJ(+83rbV6goTg*3H0JQ~-@lgrOcvI5bv@(h7>!hLtmxD_y$RjpiehWAOWsU=HtSg9n^xBp6ay4Bh#VqE76VbD2Z6L3f z5LswmhB+y$8R8Abg`c~+tT~cdH|I{seK(LA_^3<$%4a9pWQIz8CLhR64lv|DI*i{( za$I5`*I!89QKfb}Y~79Wz@}0se&6!HuZulN-Splgvpbuw?E!7Bw6?YmXn6j@N~iA(+KdN5wPtS+4Mcj4qd7g=*8+Ecd4K6qN{-0?R^fMjy%e zhRkpAhol{UYWMD{7Q)_z8J&}6U}cW*sK51ha+~tM5Cxx-01o2sio|=jgt04-vfCiV z?Y3;?RS+Oe{LY2>)*lR){ug4HUK7oXJgTBBdMc){#fZ{CLX-PoCo$T1ON^iXyU{Ut zpJgsq#=sv@Uo~S%UL5RV#;ZSwlZScb$vZ9Cjww3rUmZK2U1zKos;(ehQ77;`HMdsNFFA~ITTLt z?mHE1aN*J!7c8)}Iq~!ImBtE6gXv|y>!G)lasM!oM2@7c4kJou=!JG5?Le;xg~7fJ zh-@W_*w2gQQkDRyeAA8=-5n>mavv;fM^|2KB`^G7jYU{bis{u27HwPsPk;wckO(?U zwu&rn{;i|_fTD)|b}xc!?B2e`^<_hmUMo%$W8H^Q%Olb+lkoG@3O^dg9buwLRiG3z6GVJIi8~oxMxCMj1M>TfL&>ke zM^9Hw#I2=DXS0CfRB&m)@nYpEiQ3QN#LwSbn?Ry_*0IfH)G~J|t;-mp z^<|T}?Hly+z2f)JOD=gm1*=c|1HU%0PWVhaYTY}Znd`n#9XPJN^67~mZ_7v+r0f!> zPnH%JkRFXB_Rns)bI~q|ptCdE`e8C2g;krR1v4qzrwzBX|Hy&yWhfeYcurkozZyyTdwAgcJ1{GoWt{XSd#c2lwnvzxL51 z@U0wQznvU}YhUPo6lYcHNR$m>1dXrvO?U?j91!f+Kba{~QFn{5D(WETv?f5NT{qkO z+O0rl`v}{V>(n|hr(S@ZcT#a6kQu1*lqRttF`o}0s?sGFRp8F43Hyw&h#Q-tPElSP z3?=H&$);$-a031Qjp33AKsV1lAN_sK$t|V0vK1Rf2Bf4V|)z_-LuKB9uYC6#&sLu1X@m++# zj-weu;24C~9Up6kR`$IPhi)#Efy`&4AI`aYawqo@^6TtavnYoX1l5USP5DTFir=xG z!i+vyX$=;}IYk9Nw@AddsHGExa4w2LFvHHbafskGo<4@navBfX+LAAC6+4s zUc^U@xhO>=?-b>C4Cr|$_s)nd_|6lEQ*5{HZhb; zcfB}`p{|Bs!mXt9F~zL2aY^@n)1_|74 zJZ5tf!{zOY%UwzW-kgS(*_D*LN;MM8f4lm+QGCKjX5xo{B(hhjQH2!O(W6zB_)zpb zrG7cPY3I|orXySI_!F`y!DmDZ`!|xoCr?|F1m=vsTQ*rvZ|gUg5!>l%CN0cU_o0|h zN+vXiQs&(|CYh+J)ApjTq#r)uQyOrRxXy-|Z{>wYr_~(#aSe@{vZZ8<1?LT+;kgo%53Ru(coQn*zwx!g8hf7sN6`{lB=@Qnh=@h(fJl1 z-kYYO<)RjI`N%Y|0@Znqd?npXVle)1yk$|EM(!z!HwLx&hl(ws$B6v&5Z8z*lg3xH zn8=YeR&W`p2|JQxc3OkiF)cdINc>leki5lPY9jKyEWl;y+T#qbyFK+7952x{vf%H; znB9HPKLuDoL9epTN@G(g2#;exTVpkaUiQFu;+JiF1x^AKJj!p$-@qcm>Zfc6HCb56{KP2HDaV3PDh}#3T3YV>vNpQ4 zFNqf_p{X;2p18MP-rKh1hml%hj}vA2{9L{QN-AYlWFUAAbk{EwD`cgHSlIuq$?B8+ z&m|ANg8slOj5HOG3sdI#U&Zbqw*38N2qI|L)V8YCv?X_i1~-ckH}6a$WX1DEKm<2- zQ#Hi?4v#OHOViloJP>1i#HU|WK{L)ZI{=59|WntV6X&O#)lwASx`RlNpfn-N~ ze^IJN{sqdNa@4y&@D=nRVdT(kVoT6xLikl`!xE1aY@#vI4lm^ds(BPBH4NWR^B>0v zlE)<|I~DXmVc;e!bnbbPP~{)Ij!owYnLYL2N$1zQ4G#|0u5&PTdzMm{^G7K z={~)BAL#X5|NB5d1ND5l^VD`;>~@8wP6ZI}D{sSJg-$o3%)_qvYOU9Od);|P%5Ksl zJ%9y^7Ts}#=UcwxWk-vCcMS7zpDMD1IyV%1PnOpDiIS4{sP7JNW0`G= zCNj^qx@)MLr}h1a+0;&I*f8upX5TJQ`eMR&oSfRX zqleMG_8_K{2`UCbohad59E8H)qetL80Di`>h?RxWt#loDa`edqz;(%*^fn{Gn>rvw zjy(ku?qI2F&lC!q@3oOhrITGCP&Z!l-8~si?ieiEq@0m54$ilntM6+&wOm)yY=;F> zD;QV6y&JM@J>Gn4K1J3xQ_p6;xX?CaC7{ly;n7OV=K5~Ugd&GU!owWDRbD&R6fdb) zT%)&f0dH)uBI&kI2kjko*jKVkYEjvJU2jzwiA=Ow0kl&>o8rlYkisf?(!y{neB=&~ zMzE=~>UncuMP5|_mxzlBnDHJ+iEDQ5DwkQe9SQ29g&qG zU`ipY3X~Us4X;qdol-))*fMZNgvkGu{|e6Ul+Z)K%nB~JUuBhydb6V^hbV=r@j1fO=K>zJt*HxavVDt=wd=bcfGSPkPGn zap-$hXs>ixZDeELMsL}3zqr0U{RdzH?Ks-yAPbpE)K&oX>PFlQjm6%b^%~=9Ze>tC z*xmjB!rj!qYXqM?7wp|S+ouKn*GW4)bP>91X?9G5Wxt>*xnR(X^kci#Rs*Tf5DM4k zLe@zjgRbdf>s0SOb6c+LhD@c_M4dp=qGYk75~V-P+9K``M|Yl>*1?ggp58kb*X|7< zhw!J}cA-J~K^$oi-vM53W2Wu+A%CAmgV@p2#f&f|hTr~qD*MM}GMnLv{&uOK#^D*L z&P061PMXHJEG6g}s%{0}ubI~1AWI2oMlB`ceZHnNe zs#lEW&1wFAH3~cBM$SC7UbpbWamHhCwa!c@ZqXozD3O4+8}@*Q+u=Nn5dz=A+kN;A z3MQBYES5lD=2r#~PeLPq(A`!D&2s~NL;GZJUP_>YKuVxgB&Lrn%CKsy{i%q>7e0Rf zWAbQ;w?jp32rGqPdw1A`;G5U?-4V4ElvQ3E#8hzO9jS4iI(Ka=ScDdJf!4-|tY$^l zFe7WrxGMp{5J3i8Ib*M@h8T80rV?wSc#t$E;!XzB_K`cF5ck`&WN1BQhqX4KvOpMz zu-^0lV+NwZxVm>S%OG&R7`qQWIOyPC{AsGT77QLutUu<&Pu1{bRH2ud1mY~^iv_tz zE=|MGiO|DGewqVwt`PL8b0MspA%_IQCI$so00Ey1BU=@k>GF%MTyh|I;ZTij_{qrB z9l*lt01ICkwjzXj0epOUQZ1H=+(ySo+%Y~T0S>qia!gtcP}|Pt0*|}J30@!`A}Ml@ zX42_KP6z+bbDC=%_c;pteGU+TrE+BAx4Z?nGeT226f<&|H_=t>u3#26SZ zQBt%c+IYt|Y$MaH-Zf{$3m!e|*}5ay{)g-jMT%hMdR>Qd)_|A%l2dR#*c~#sSl4I3 zy`O0ifgpu`e+zw?E6Tq)pmTlxd7$lp?v43_O}J8%(R>#-TIeG&;=m>9Obp0VoSyzw-rzmfgVeI!!=v1Enp!|y8Pq0sx{-EF6PWY_9 zLLF`5Ss$fpyt+l$sK;9>iTZ>Tp*EkuoF!!`_mfdemUtgN5uZjE!r>V*U!a-pfWV5L zBjH^bxw6o#g;#9F07fv!p$6OVtr4j^t4frY^!J>wA|UAR*$zs9q^ytqof-F%iBj|+ zNXrV}cbf(U+r4&)P_1Vrm`%Gb^;&;L>fec8y(Bj3SDdBWEW+b}H#p93S1k9t1YjqY z>i{eLI}xP|`;PRIXdo^?=#EhE7gL!(rjiIxllIR=J6FWkFZcjg=(Lul3Z3ii6$XbmF7tizww150 z%`cY0E1R#(Q@qk^e|YDt1hVe5F4ykXh_dCyNDqYD=`rYSpTIsTrwtbUbef;$!*=`p z@t7Byqlf`$J86S86)P>zOV=pmPqw(_sLlBk@0*Mv?o*d=)J>f&v@p?4f_O)c_yvXO zm&TC4LCQ8&?mcUSH!~u`G>PAPAs-QH@U;r!A{a=b&s(%Raw8#n<6;{SKA+x`qnF<* ze64FzK8o1@>t%L;J_m+6Z*(ZPo%d6z809}G=rlCjoEA_Fb0v_G_>8p^J`uU7x^%Og z{EL+DXUTTGDGlSNDIrf#Ev9C=2 z%Y4+dEB^2m7#Vg(r$CkM=MA zmP3l}p;I`hHDn{4hL+7LoaXOq|_@NuN9}@2aNzZL1=SxE)Rj#}YwbSNDhJ@>4B~+4rxPi6G`**dr zxJwTew$g8G^nY+M+RsUa}I)j*a%` zMW^*7RG}D5!tgw0%Zhw&G_|40fiUlguec%P6No{zNa0sBQ$zG@2_L!01L?4q0g)9A zQ$p_va^9R-WQOR9z6${eRndv~!~Ik~>N%&e+d*z(WMe5a_Qv=Tys1+fpAVZQELlA+ z>W#3J>#+-+Y5jlAmY=5-6KMa-Zu5WH?HtZ>COKwTVv)^w*8?6SdSq611X4d(k8H4@ ztA{n_I1P7!zGp}9=BohEMGK;JZa@>Nnilq&i*{a>9(2j?h}zG4e2l2*Q_dRk8r;aa zEZ26eN|7?lb+Fuw22sY~H?VsEL>XrJtZ2D|M(3+Guwd9Xbt9lcDAl zT%8S%->_jTyhwK3M^6hTsol6b_=rXF+lL0yX>FAfxLQW^G)7g62kFm3`~vx9x3_Hv zy0dOiNssnGXgCBn7NK!#t>Qee+CSKE2#ZZ29AXkieO5Rgy>1VN8#N8y0SQPT=QcbW zW+gsjxG26m{_kuUHeY7fxLeswqV+UoH=JAqz_{fWp(hxxs4VJ(E<)uzflWxsQrweK zy_Wb~evy@06T-w9@@k-2BmiS|N5WtjxvkJ_pI1x@2rSjsL2d}LaVv~HR7~oFSrE#c z?7jj^ZWNUw3uUKfdNXCf%;!N#SMsaJ+}hR>_wVEbwei13%bjHRU#sPL|I2EB{Ksmy z6HXnZ+a0nF(&Vp$7LJ8|xNUv@W}6X+7*EFk3P%DGquh;WoRbyuJhs^ki8%nufbCMN6E&9|(a&7PtKPJHD+(ipuC;Eguhy8u zrDI&?Q{`;)qMhc)J>Xz7FWC8TYj1Dx_-!u_76Sy%+$-sO6jT14$`6;0GMdk8fj?-s zoF^{9E8Dn6Upven0ROCKIscdb#>`q)w{Yil1h%3KuAyi@UhQyqQV&~C{fMJZIBoeW z(q2iUr&8K{PnHKjh@UwyZ&e{V`jEnpEqDZ^?wxM&r-!PqThu8ZY+4a&_G|q`i|BC& z{frwMbdP(n%`v(j6pasmH*N3xgEV;mX!*AoFlLONGvSznM+4<71324*SE!E*W;yy$ z%4aL`)6ukswyT7dzws+pCszCjsFzasTwu4iWhv-p)FU%|>({iMywjA>T2%W6p7~0; zD4&>=nnREuj{3L_-yM<4x2B|nPp7`g#1~RhGarB?Z7%@j2^KC`@BjaO+qec;W##8S zVf`|^UAU9(%~DhejBF7o;oVu8qfFYv#2C?o;AFpHMA$3eu;6Lbx|r+mXnnQ0XX#-V z4k2&=##9~m|Nb@pE1r=B@k|Jq#N>6~H)wdumOIP=n{T0NR zV|%n~jvYntcX~yx@mKZy2%o2oi#ccD?SLR4rx5i+9k2f^eaH0z#Um5d{teH3K3y~uJhxNO8$U8G z-Yi)pEt4v*Q~QisyoyJ@O37Tgpi`Mk-5tRTg9Hva)v~}S$cA1mL4Hg3#p|y$h7!cb zs&q0-*x>$|P%Znr&xMJ$LQ=UIUY#il!$t>^T#-Wd|^q>2uzK2Vl$qyh~ci;J`Jbptz-+&Z6b*S93;M zkmgZjzR09}%Ww5u0Ogm*BQ+97y9~;{)IA=IYiXRa318F4@*7z1QDw0=4B>mrm$8F} z_ItgCpW6;D4MhL^oW9#IcvSiQtsGP)y7>DM0zQSdpU=>=b&YnM7gH|Q+e_%{<}dve z-qN={isKbM$StfLEuyX3jib*}!n67YGN8#)rM1DVlt*peM)@OyOk4i?v{#Jisf0FP zsiIn`V-U}3gGNS_JRi9|?}8b>3u%!d*f(<{_Z;N6^L%krOZ`Lp_|ypT{Ld|bK{q0( z_T&7A_faAhtLD+7hmMo^oXOD*2gwzOUe{w;;L#1RtABLxXGfi;Ec4_0^M!r(Qcz11 zunAX1%8?0~&m$#-B1^gZ4Ar=T*VjnfaZ;p2{*9UjPIw_j)CxScW6-)58CM8P<`4Rf$5D{Zr*=|BqCicrz=Sy zQUapi0`SjW3CCeBD-y)HS=6hL)n6W37n*Pc70iUd}g$<>WZLagxaH#Xs5^tyCT7N!Tyukw_gl1-MWFfra4o?G8 zA+sY(^5c#9gemCDZ6g_=Q`}juTq+1K*WHdDb85|Rv|W4DKfM3i^URh!$>C0#uijQ! z4$zqX#38UiPUrn;FVa4)+t9O99p;CidU!GPzT750jJ5SoWO#WJx)(~Y! z*zU&r_=@<1Vo}MPX1YL(m}enBFi+h9>$OJN$OdI*`-;L+)kZ-x-sH}YX317UQU+E* z|6U;9?1uI7h)QW11w|pqsrqJe!NR#89E0w&lRbURUN(y6l1+l{T_!tbn0bg98GK0{ zC}BS))1p&Voa!L`1XT83yB=+N8r2Aeu@Pi zQxa!r--8I`h%*FsYdEc}*Wai%94$&~E0cq!7Z5T*&wxshL1oqY zQLo`^tr|Wvy@_1yI#=Vlu)Q*?OZwPUN4?vO4GwQZ$$v$ZvHxP^LV8w63U6TbFqHN8Xo z!&O6(KW=Zg(XQza+XS*jo!i@$#oBMk+#EEJs@kn9X&ZHY5wNib^#J0?A}3UC*+%FFSSCxC?&n8OWXGJLd=??w-AHW+HzG{-w&w)!?%z<)0AI5?U6zShAQKSsC#RQ8{I)SrYp5a8ZB1Ji_<&&95C* z3On3K1_wEPYk&oOmV^G7EDZR#4YjAJP1nJ9^2!4~)IeK8OP6aG1S;*v+pgVRvcdLq z+iLXNjcZB$wCY;&4~zM$&%L{5+HDz891w-T-U84*e0v_R1ho&fX%<25xk+s2J$NxC z51D(UI$~zh&K6C5wvrqj4C1a@8QL%uY;|tUA3hxa2NC%>U-5?^2)Uu{VN|iI@9Bo> zr2G-?{(_!le1)r!&t?LuWgn*d=>p~3C9={&N{Fr*q1PYZ8j`j%d4>{`i<&)+kAIrN zm#eH3^_2Ri1YanZmMJB#6a5eM9~}M`TdLKPvQFzG>iax=T}#@)%2}PNcxqe&p4&N9 z>Hg_gO(oPniTLZ>uxE54Cw$wLJzyh}o+}u8$+lCGi7cHRI}WkSE)8%7(qn9VT`kO` zg8=mCCwgQ~&^3cPkjhAy6|g-hfWQc!m_<&m9l7t1!NpYbK~Y=0eq`)=IXwkx+@Bbg3Q5PoZ2nHZj^zuu}JnP#^) z>2LnJZ>>jccz@kAI5C*LfAlAOE!VK*_4@0+LjJN({$+i^_9ZR>v3=Uc_0u<@y^=)% zU#?)Kylfi)Wv{(@chd!HdD)FCI{)F1D`k=zCiCm3q2?l`lA|}~|CxeDMi#q};PZV} zi<1d8uiGmkZn$|P?&GG|MQQ5fERDFNY%I^=;yIIc5OSB8JAzd_`0f3 z*&tSn;~?AgU3*%?Q9WuxCcUBEnJ~u>YjIJatSFGBEutX}U z2j9Jrnwfo3=Uy7Mi4!l}n_?w>S|_-eiiyS7(b5OLDe6=uQ{yV}={l)O50qaKGN`q7 zc=_z~N^fYyRU{eC`dImu4*z0mWeIchZY#ZAY0MQk@?Of-sL+4Q@vExE@DM;ZhWG^~@+C1#~7?tikRH$|8?|G|BX z_k=l)y|fhDz1U~D6|OI?`HRxv6;5hfWpH_E+Wgm5?!)ijhu#g^R}~nw5;KOqD7LL% z`@zyW%M~zLw`d2%vV(bx+usUZe;#d=w3;U0_x^GO1#mUgd2+c#I`Lye{12^<0*8V}-X6m}!9leLm^@8&`m(&KQ z_I=%h=G^PFJutX=_niaQM;0E!1J@2H=&Lz|TP+s`MBKn`zAAA^Qhg1+*-)f~jBmwM zl`1jDN{R+gONfTo7s>o^T=v+=x7@9Nc{pw(1Jv%NBPT3E8pJTH!0ruyc>~m8CTe2A zY~rUiVQvMVTP3&>fkQpI42xV5T&cTG_!&a(%D~5urtsZX(z){owYV9N^hn9fSJ3f% zO&ucRKbofuh@a7UX&vNhNKR}u6Z;`>n*t9Cmm_0W%#U>B1^j)pk! z|41p_`{mcgGJ@ACYg}8^MjES#Y&@i~0%LJN0Fbigpf>8aCu$l#*~EK;BV%!_;?4~g z$TE8`?{2mXur{kk_R-MTMz7a0;iFo}(VlqA_iGuG5oJU$I35Ysmen*)eHa@>?7Jfz zwYy(`06TYwBIh10>i@t*@EaCP`Dm7f_KPgu4yugs$Sn=%dw`vLWUU=h)+e|G4=J}9 zZ?L`ljtSde2iLHS|1C^kNt)&(lXS>dB6%4!_>ck*mA;iv)k_W6_2^0aR7`Cu4o6BL z4}))Qo#r_Fe!A*CE?;raed*ANj_7r7yMSQoI=|5Ka@(XV2Ke~fgvrZzDd`g{L3OB6 zd00!n9A(p%Y|vu1FLlwW$uej?f{ZJJnJWlOwHgI2dy_don#tV|%GIz6B3>YmcbhHn zir#j(@T#ebTI-6Jf0Zr`v=>Wra{UTyv{7)9WD|5Nklb$xYt#^$91##tk+wqwMcyuE z1`^EiL(^?uY|;j>J&{R=WBP8_)$9(}sKh3Eb^QsDeN&IDts-1B>+5+5G@bE*?)}cs z(vzSM*~XIo&SL0>U$sZ29RKso>6;b;yI7sAGDpDO7xn<|IYhS+xwzCunrevI8p96h zqT&GLb9Gi^XdzjDaWpiY@sHgW{Kt_dQVNHgF zdIP$J7_#zVEKgs2qQxF5cKe?iud3lOsZi81*<5`m9f4YI{c*rhbw=CN;92PO%{8&X zvL9po!!1i8+tGgY5zkx;rnFy{g;F>dSG2FSA`5RtiIsZi71qAZThct)&OW#;@ieS* zngKhBhFh(^2)Gxzt+b4vf=dmzytw_jIa+ZpJv_=2hd5}C2Gu>UoIqF>0MhyyXK?xY zD}zsI)j$+yLIHE8jxqqB6TV-1U?A$V|0ilcKPBXqGvVDfeo{$rCHyIB?FnpOO5Q1~ ziCUnDHyusO)PeyYR;vOjNp^&PfU_6w${(%&DDhTYjM<@yajF4%KubUcKsi=-a4-7{e2&| zQ2~)gDWyA9LTU;O6bb1D84>~#k`m)cZcVgw&{kiii^_iNQb^IR*p9*x>u} zocB4OKYqWz1bOg}Uc2w>zOL)OpN9%{MuF?L1_7e$W&cpRh5QU(Z>u68IWwPIdqbp^ zfg=n-|48O*5B5hu_9<52`o^Rg_K_cx?dW(RVVo77x3p&S6ZzHy^+RpE<^yo)3o8ro zc`^HcSe>LpKCs~M8o0>2d@x$^t}dS^`S+4XmA8HJXiZI>JAS-svhzDYvk5_INMX+j z16W-w6mtyE`-;X7xnn<9ZB8G%0izudqYcS$Z2HxT`kTr%*L)dHv^=0$ei)iUY!q^C zkQ3aOr?lIE8GYdt#-TKEPyKE{mkj3a6gb|Cjki-L;O9k5U81(=H}--XrU4W-j5VwF zatgD(vSz^NhnU}|!AvW%q3-;cU3IWhAnVL8Yf|kcM0_*5I-(J8EUlgDEfVVGj9Iv- zojS~^4#aa3H_Pe&UMT|RyB84^iJR4N&J{ST3G;tG@hmf!Y#aREOWCnrN`_TOu>)+?$_!qv1ulpAEG{ERL*sxpvw5ac?qkrl;+dqzp1>gaJdo&!ywj{xL&PoS+ zX9Z7>uj~{B_cwKMj0$6AY5lpk?#Dr`-`jdxOf}_>7Du}RM|G_2+dM2%`EuD~pr`5j zwNT80w>-ac4du#R=c5eems{^FJsEo?oE!M*dTyh4f$P&rgtcn0$C%&1lQHp9_p#f{ z?qk2RJjariJjNpSpNz2@xsN@NeKMxY&whan9Le3v5V}H%AQgwA4gofHWY$5qX--(; z{@J!|vMZx(+tDFf8N6M$x-nZmTP?l1VOKfpBsscMw5DX_GNPZ6Y)T}YY3D=M2gZEa zyDp(hZ=SMQ`YhZB;Pz#~7M8m*t8ZsV0Vp)S4`pgJA$;Vx8rD$Wf5gs6TjgY>m>U77 zyPJHxfw<2*5a6{~9!yU5m_r=^2I_-&8Y%g!yMnq2vpfhynSEHEL_`4QS7biEOHe!B zi=DUAA>gM3rfyJMRO)iU4c!1r0LD5UyqwHwuWS>r;)}`9(zfJ;SFee-)-~hD_z+WV z@Xd9hP_rrTP;%EPn-3dU*cfx`9(1KO{ zT?PKWx%Ph7<`=|(1`|cmKZis(W&+5 zT1&~nxypmgrAcV@S#{u9GC#O1Fyw*%R}P5ZeU5>xvu6MjOu)|Ol^#{EiybYHI=Q27 zVXg|ECDxelHU4fxt78TYp?g28G$L+QMgq&fgM2Dx4Z2C+*X5mWh4p9;6{?swxDEYS zKiE+STQM1OXw+*MuNhx|KXvQylb}M_zW0#E#;qX@g4$3g?&1*excU%u?&J`3ReT8g zn|GS7f)kQ|-VGM0h>3${QIIs_SF! zvmCnH#E+OAd$;Qx(CMlDp7pO=pyMN!`BO-tk3X#zUpBvB!WeU zSqn5C1dN$sp0k2EliBSR^++$B5T54}y}7QnzN^7Ib!Z0%an6i_Ni8V|(GQ&J<;nPR zY4EVSOsK0V#{X(!;nYJCH5@~~tu0$68fyIa0khbB4~Q+}x~V;>-9x#g0&jghJR7My z5HUk{v|lhA#(yIEdwl7a%)+M2wgf|HkLUNW?! zgNu$%J|*c94>$1L+W7Geih+@{+B3F=a#Jp!)(Z=~!H>e{fYZGiFyg_oJRlzT*F^Fz z?4weNrJxR;gX&R89l?VmIbsJ&VI_gc8kDb2d^Md(n`k3s*b)-Y_mO`_y&2gS!rHns zj#TwOGxPaLz(CMf9n|SH%!XsEcc^~Sn-V%>x=`bI6=PjnW6|921=YI2)mLZUv*S0V zwDuoeozbPoL`cMLCf+AG8oW97w?0H=6m_Q}xQ=fptsH;V1!2Pwj!Va`d$b{4)K@?L zqa1x@ZrY8kz5c$hGN|Ksg8Kt1+ee1FtE%vxuk*Y$VtS5duR+MNP;KL|X2iS&c!Uu? z#tQ$|3ond-AMwJ4P2rgP=m`&W-$nE<7dT@ty!<43j}N_Rh(1z8&x@b~cj2ZAaBc~9 z&M$1u8DcW*;+uxzo5QARuOF)Az7J8W4iTsbxlt7&Q5K@|CZu1qy+_(^`*vyg(Dl^1 zLFcF2>J|qMiE8oIg%75kO{Sli*|Bjlz`4;+I&dw@h;(_Fdd`+;q$z!`ZPmZDbx~UMAh^r$9JJ~Y!J*4ki*@dAON9biAh3=Z` z`*gxq=s;bhh9ajZurvp?+O=*j_}#uXs_2-3HU+wKJeG%dj66$wAp7QUA|20Hp!#(I z_dHiFYjOvMip>Nqtezd29{g%muVQn}b! zfy58OUvaX#@SB=xl$3Q^8V4I=LJTp_^e|8}Ors;F*;c;AK)(KdU3dZHcMN1G8}iJo z?)kmC4x_p@+d7n%-&?RB!q~6G(9g6HH+B*I&IH}@1RWg`7EmT|G^2mfdhTh^|=f&`#$ldv0qWk$eR{}{Bg-|@buQnt>9~{ zM~egx4XOcL0rJjDW{E&hip(Kow9%HBc3U#T4kIQWgx|yvzB~wT#FzdJ6jym0(#YS4 zX)ZK8DmpmJ!3e!VNP&h%h>$xXNjH^wxMo>tr?QYm@>kJZsm@=uQPT%_OF3?uo}OGr zhI2(#pP6ZNdFM$}|C=THq_tIw3yGVT=0eKL?^9EVeLgPp^>E)=BZy&VWh7hHt}A@G zAe%q*{LYAxGn5GaTGJ7C@V;3NMN=#(Iu6Io?L#>dq4WS|I9hpVP@+GH(4Kr`>r))L zpg<~m&P*F9(mbBf!f$rOZ0^zHzZK~O?{T%JA7Xf?VmH5Y1RRQDHf)o<3CgYNNXR{n zO|a5T?B*Tr)?NdAb){}_L~^)~a4WqFUZw;yW16rz&(c1C*uW;%-n58_o!YF5Rl?I}1TNxdTD*PxQJRwLuE!>C@>YSREdGt#;_!}>!8 zBk@c_iGE8-i}w$!97`r{RZS?qnV6}Zz?LijC{e~#DNns=d05%fq30L;5!cOvUO>Z3 zFR~3UNfr*8w`U{CcA2P8mo{R|{;LTW5=6cYPs8tZd(1G_)9 z(L8a#lYfr|>-n*!=zpaIBc=1djzi51v)pR)Am!0R{V_(zCo#j18X>iloXJp~NZ@!_ z0?{5L>n1|U+1{3WcTtX=-RX-qYFnRF*<)s!SYCY6-~Z-Plj2u<`|LxC9227xA1_)> zBjx$7$JZQuv&*0zNfp4?xBTw#ouLK{VLo0Sw8OBJ<&c{U#Zs5_NjHyioZ0gc(i}$| zHd53fTPe!W$nlQs_hSPQN`${6B|?#vR#*swQVut@i(pVr4s8^Y9)X=5#qT8{r_?3l z78f)Q>^NIj6a(mTF}y%`v1e>ulf=wC6d6v}39dUoqb?r6^t<@@-YMEZy}TOdz}A%m z>u~v`m5ggkN>r<(@A12-Y7<9&$+R^?9v>CoPL}~%CgZTJMYvB65%olX%*a|?!wsX> zy_m4veN5{t%pVU}gj(y)E(g4I_-;(9N+G4g>vh@K_a!QPEPvWRyj5uYfd@Fr&p%sd zD*pj2-)b!1WFaqKY^7Q<1O%_R`#X^&*sB?ck}$GCU#|()5ge_8WW;>4(>Ax zS`^ME`yDu@I885PG+J(sNW(DaW*n0@lN_0tf zhnJnuJSFSzgZe7mnFG)fpqjMNW(h1U>FANJsoL(oOV2cD=uxGz;zP@88*y zm2%@hAr3+m>$teuq!h>%{(<^Xh0M?QrEHrXO*YaGzBp}_Vjute>lG;_Y|`)Qwpul+ zT&7!L_x6tmRt}N8gGwma?}Ff3Dvr}?&b~ScYWWXbs6$~!GSd4XH?tb&QtuJ0#fy1 z>ZUJ%90`oQqsVZYPH^Y>nWy3b!Ar#`(2JuqF9xGNc@0)H`LkTfa&)%iw(~(g(;BDx zMCW4vQ9bK`<7+z&Y47VZ1YN9>G(U$3OA0amEHw)@> zJEEmAI=B~3pkoJ}7lYzW+c(VH7dT`NCd7HR721G6E!nd&JQYmj#2F32l?>n@79TEl zl-t90vBFVF4FSGS|6oTlWe_`lz0Pv|GQI3h$1iVGtmwfvM_k_IMzAzps8kS)&^SH* zAA_y_zsh2Bi|k@2Oc^?Zs?-KWV`Ap*F~h(II_VN!KNwLY&eg+q$vGDWwFX+!ZCNJ& ziWC0E%u8o6!zQMQ?}|@8@V}Ya6eMMDZ^Z$Fj(xsg1wdt{k$w$;N~(SQ?$;|-091AX zsAy2-#sH{L0H`=d@~#0;*#)2?!$Jet%8BecE9#(?6xD@#gF@Q@Do*%e9v1+heOCl_ z2;kO{t}+zf$=J;TH7r5bV_Q--tavl#F>mq)nt4~BG;EFWiMQ7MS zJCe{%Q)-iw{K(-l zO$rRQ($lMbo#p&dfMPxMt1c+eX=ANd zCitLSQ#Xen4Qivt9eOEaN_CyIJ$+I`kGV9*@eX?)Z5$%n@=8>58o4J*va|> z4)kOJFr<}&I{9hy_V_)YyUoEYGu5N`AfWMRz`dtl;#uvt35o%#d6d?V>Q35C;ifr~Sxf`QE`2-SeMKBLA# z4#s}b2udh;CJ^4Q1*jXvmyO@H*?q%+Acra&n&2VV>E0 zp6!woXVYy9C*~#V>2_+v5GSE1ZT!G zdW>?e>L#X!(bkf)X;#B4T5Cc_w=Ox^*|zcO)S^&Rx%5QPW=~V(u@^}-;_6f^{RF_A zi{oq6X}6j<9s7WXCnsh@>8F??6E>DX1LqQLq)xd~Jx|TG^&R7?fg)G~$k0C-J34vr*o|Laharn5X=@&4Fw)nb$F*t&7;F z_$GzVtiwTs!bx=4emJ^yxw!d)*v%{CC?&o=VZNxzv+9=kH| zteI)8gKvHRqu(^4@8GY~=E+cW}+7vU9F!i$04m8lh%-L5DDmAU^ab)R~NpDw}ARB>gSB~_VA6+NutF|D$% zm}t?i3*6jFIc*Pj-hhut!*`P54+7zIo@_=I5{0ss?IwtjN-Lt_3!Lb|#a9B?Ido99 z=i&OK9hg38@C+!ciYubaae2{ z?Z*C|tt0@4C8KR#whqYAozzNuT-z2KmZ`M{J9=rSB@&ky~%qK(|L65*m z4WN%Ig36Gu=-|gK8uh`mh?|qY5?}(V7i?2;hg79J@E+k2j;nxC4}CmkLP z%XQMUl6*Q~^Np7B?W9w2ZiPKtpQ5=oJ7bQTcJRXmI+3el6z4+>|1TI6%SM?=#|Kqu zHV5*|WEuzL(Sd95Y)|nexr;ly_$Hu?NMJT3w3>?F~ye!lH-cjRaNtxK#<%pYg&tt+0k zZeG1VT_yV5LH8(G<>I$hF^zXfQcTLWGrU3z{)+~WQ-?1V!1vz6tB2s7_tD>N(D)dL zmtCDlIfPaV*?9xeErJk$amU-;WZI^trPP9Gm4Rbrhs(Z}=*+YTuenD|e;uWkCizS| zGXZvB57f-8$=_LksMSWT=Ahl^CP-kIdcDYDx;5lh@+(84c-qIW`wsFAQ$|wL8%mJ? z0lnW@+1JvN`H%MTj6%MsZa-gj>r=ae<3L%1jzz7<3nj=v9`d06`u3$8( zh{m?S)R{^g@_7`#%bp~wkvhL3Dz8R85!bfajr3SKYkJyOn3 zo_FV22sG9g?aekiTbIA*tiIM8grqyXt(20N-||h>x2SpHwoh;HY}9dk&fIg>`8<8? z;VUq#`?bS!>ad%kuSx^n8m@||RSQO#>8@PoWj|ye4Py^%V@sZ5m$qf&&10KcW2bqt zJrH4gFu*REDKW+%smLJFL=q1Ql-vszOKB1}RFM4Uc8Tz5eY?^^&AdFMSf6ME!x<&A zA2;6VKHS(ow6yzmSdDihze9~n9@(`Qo3;xr0rJugJ7g+v>=IV(?0wR2f~+ z0>i=|Uh$X(=o*u*175)nDNv47PGBl+IHzUR%UtD;8O|(-mQG8Q&WTqy|Er_+d|2z5 zFzeeXU-WoJ6_i)k{B9{Mcs=c%oP;%$axQmW`!>&T1OYe&qw}dH$ffab9W2S*maV2Zgd-E1H6=tz0f2+Fe0*_m)y>4>KBA79*0g~o8p_)7za!RAI!&GnG? zt51+qk6A~8JEK=TBV$$`pyG)ijUeGTzodO^A~9u3E+56*o5RYL!r$ZTE=yV2zz09o zL_OuDlwTlm1H%-LPBZkx%r8F73vYu;st>YEtGU{y)8d79J=;t_Bp~l1#^5&+o2!jd zf8nId5oa%-6ef_p7b|B(SI6_RXymSJlNR54{ETvnvLA2YoQB6h*iSg2EVj$|W-(Gk zKsQO7i5td$uE{Awo$;+2nVM`~bkrSBmiScUXX@v4*nKGbZSyi^w=n=JJaUXA>vqs=PY(uky zgh>0RS=d9~IijS)FIB=Zo;^}>mQ8kzt%$=Y0q7c>=-YmObIwb3)>WL9ec4>h(Fn`O z2*Nsp$#2mgrb1o&L3?PV%SL_cTF zP0ld|x|D-=18|f15$_h*THC5-rS9P608)%RVS6n`ovoV>=9KC(|LIG2+9!0{*WMh* zzZz=KyZK$H{&B;OJ)@<<(|3Gy!P~26<_EkD$!ZkLRCsh!?Liz-%0A8wt*7QWhMQ?& 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

t65K>Pn>B#>8WYX#nKpS&Mype_Zy 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_downsample.bin b/examples/runtime/shaders/dx11/fs_downsample.bin new file mode 100644 index 0000000000000000000000000000000000000000..0d87efe69eefdfe3cd659032bbb3ea7259a032f3 GIT binary patch literal 1892 zcmc&!J#Q015FKy)MM#1bQA8BzL_Hc{8)Kw{fywdVale-^k@x!~NaE z(O$CqX0#|G1u4B89*hoe7r4G#5orw`u71ARc>VO-^2eV`%^%36yt(r*t|yWL((#^Z4pyo^H} zc_WA)d0zPUS9)vhKAe*ER_~xJVgdXF$HyYY_R_hi=b2beHd@)-*?J=cF(+cDyxt`u|H{NJ@Lil_KAGPLP`1{FaAy;=gJGj)40LE0$b^w zvlWzsJfbxae^PXQK@CONSc7s-sX_fw!+Dsn2J#sTHKm3S&vP*rY6_lpExI!Be{nWMf%x!jCpj;Z@sxjuXUeBSEgegBa61@f5l?>}qdeKHm*S0mTHPCU?{tjRB? CL#Uwu literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_upsample.bin b/examples/runtime/shaders/dx11/fs_upsample.bin new file mode 100644 index 0000000000000000000000000000000000000000..f5743187cd43e128f7003e350ad63b6bc9117155 GIT binary patch literal 1446 zcma)6L2DCH5T0z3Ce~I%@E{&!@g{hXAmTyO*EZQUAl;HpOY{;ct~4Mu*c7UVvPjN7 z6n}!Z9K3q#ziIKByWsb|eQ(`9BJIGuw>$IA%s2DiZV+vjKRs-|EXwVp!Dx6Ke~gA- zgq=k)CIBi2(`=J2D@#dAiU!XnA5yxLxY zU(V(=@d?!8DQ?L*bj9eod(ZUz|HC`q8}FI!@tWRlz*V0unc4I36yN6e21hlUy_q@g vDFd|RIc8^b4aa};pI`GzPFwTlIq`iZnc6eL_gJ<64{KX6eUJ|Vu=(;A80(IE literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/vs_albedo_output.bin b/examples/runtime/shaders/dx11/vs_albedo_output.bin new file mode 100644 index 0000000000000000000000000000000000000000..d878978bcff71e5324166ef549458a628ca11127 GIT binary patch literal 1105 zcmZuwO-mb56uo_!NkS-XHiAeO^8>odqO_ZK%*SY;&PZkmag|L&)6xwt?_rH!l48Ay?FB4e?*zDCCM|%(6&E)v!^49%j@6XkXC*aao!2J^E0_Qux zcDxoIz-F#8&Jah1T*`BtQEFL5ocT&6k=-0_@J;?Chcl)C6-J$n)%UU)#qFdWg_5j> zYppPmq}6LgQKu=>=`=!5zraWOw5K1qDXcl)(|L+oHR}mOT<381R04jN!x=;TA%}Ap zg{Ky0EQMSbNBQi9LcEAWJnr^qbJg3~q}jD-&Un4q8KQuX$xe`C3(pW7da&%=eWV{( ztLfadYp_}GBY2NqHRZ970eSeIx7oMijGG zWZY*qR(bR(kMo{Y{^tQI>wW{oQk2hKzGA=FC2JcWDwWAQwbakt#)q1T<*1*zj1MLM mV)+HXt8W!#Z>}+XGvh<$ME%^a@u70^mVY0|KozhRzx)^aqi2Qy literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/vs_fullscreen.bin b/examples/runtime/shaders/dx11/vs_fullscreen.bin new file mode 100644 index 0000000000000000000000000000000000000000..8df2a6c91d2e27e1fa33c7d492c2cde7aebc6c6f GIT binary patch literal 520 zcmWFw_F&DIv$J7j;4h8O%}+_q3Cm0^4=BpdVqsulU}3n!$iUzd;pEJnRkW__!_i%# z%E!}>9)H;k6b8#N18E%~ZUEvNKlZS}|g&EkO_POyv^k7p53WsG< nP&1+GfI=KFH^KD6%msyo83O|=%#ChPf7pS79q3vCUedRKNh@ zGfZS)@BmTE^*Q>F z*S#asPo~i%i{V%UA1pUahbbU&$7@bZXe3BY+%3Ynl&cs<@m49v*;oU zFiKt)DpRjZ|McO^9}L5xAI6jEY~lCS`#ebrIzhXG@*ZdcUeW&9c7goLz7CuKl8u~S zwKACc3a(e|upsVLXLy|1u(zqWfaQXmCZ2g{`nh0we1{j3qsEeWT;m4ucg~&kw5oZ| Z6$fUwYdscQkHyx*f5I7;{&Ar-U4MU6Oo;#h literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/fs_downsample.bin b/examples/runtime/shaders/dx9/fs_downsample.bin new file mode 100644 index 0000000000000000000000000000000000000000..1191de96edbfd1ff6413faa084f27cbff3429dd6 GIT binary patch literal 965 zcmbVKO-lk%6g_Xo0VzRf9W~1$2&HXVse}t#)YLARq9z#XM7i@@vKw@^7dEU(ghqzGnFiH#?qPgSKzxPpZ`wVVrz#E}dQiX2@KqfrJq;_@?RrZ_R1 zl9~A0U4O?f;5fYQw7RX^p1X0n>DKCA-Srw*H$lg(wC>trlb2#)yNJ;V;3(u{AbKKCw$2!}0XmGNj-02%4n~&Ku?@nYPi8BEION_aU=^s!J z%S>Q>VjmH*NlXrHD;8q4`;Khd<2u}j?nn9?_iJHVN9r?_ikQ$J}dxs6n#e()K2#HS2=xUiDt8tIi7$Qc4sWn6fAVuOB=8(Dum%d z1hz+(VAGn8h1tx(vUbawv{XduHp|ib%vur_gHgNEF5%F-81_f~t8t-tyisU0Tg^i2 z`ux%z7Ha*Qf!F1rT-q#Sb_8TBtkJO?2Dn??&-=*jLvXIYT3FIF&KADYChM zIXPbNZG?dXI0`v>b_3vYU6vn^&>kTeh90fBfg0wg}iPoV*1-0rV1hJ7uS|Y8jZsrl<3rOeoDFg>c zAE8K}qwzZ@sW&;?@BYr8d(OS-w7kRbk6#;R91YTL+;>A4E;h!|B#B?nhv}nhfnd`H z;H-*Ov4`f>@yQmCZ!}@zk~7|cS8k^?n>jA`Hci$oP2z<0XtJss;qa5_P^s|s-I%X^ zY(m#$6dgo$oF(_ebd)|khdY6Js`6x%^2Ye;YPVp?NIZfRM)7TN=vQ_N4W<(^ZvP&)u`!bsv%!af$N-a zz~3-O&d7l!b;)YVX3F?pnkRlkE_K*r#v1H(IhCC9taXG{bprM&Y^JQN6D*{TLvC>{ k3ufWtOSR18<43j37WT@(QR0H#f85dZ)H literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/vs_fullscreen.bin b/examples/runtime/shaders/dx9/vs_fullscreen.bin new file mode 100644 index 0000000000000000000000000000000000000000..83bdf0809555061ef9ed3cd398d006d84748ce65 GIT binary patch literal 313 zcmZ8cyKcfj5FGnV?ItAxr-LRkqD2ToLje+s2`MdvjW9C0$dIJ*MOY6S3buHU)*_BFt5n5=JX4^8}7#AvQA>A!d6U`R-i7Na{e z_a1Gw-xGXWeT<{mMrrqBa*Re1-Iqo=TkPBGYfW0G{n=IpbS9far&@E$5PhDc>`>Vq z`Vtyl*3S6(7Yts{d%bbWI$;_&^Zfq6!(7rf@gc(>#ue7!sMpA(l!)Tku3K-}@6fZIS>0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_downsample.bin b/examples/runtime/shaders/glsl/fs_downsample.bin new file mode 100644 index 0000000000000000000000000000000000000000..055b774bdb719c0d4d2ccff20348ea39730c768f GIT binary patch literal 1906 zcmb`H&2EA~5XY&BX+qzj*(20SSUx4Rz0{iCeE>of4GFjgfnb}ydzXcULD6Wd@c_)u z%y0fXGqd^UkUYM<420p%OM^nV6X^dT^R{6TMDy?~7_cuN_kxi7$v)hyQ64Nbl$WO$ zgd|JV6|+saB1w#Pe!Pu>M4KWOtTj*<1A(Bfn3HgcVn5sE{i?vR&N?g z<1NkUY2^q0j9!tXDkge@;gn)8AA0G)OQ&8SJ3U?+S+Xh~*2;*qqBKhaiZ3z#XIQ1o zGBiHb!>EKg(735UroT@5YeS8WLa`gE6*55GhEmY_xO7U6LnY`l!~4?&&l@ zBaqd{VuQRkWLZVTPq`iwaB9M?uhZ2~M;pR3zZ;<2edrE=a#+@`j1Ig}UFnV<=>02Y zboy8@yg#f$nvRf|Et$H@Fg}v98U}7xVFi`z4aCGMub?-We$iSP9qct85)L1R3lwWd zjls**V43GG>Qb~Oa4!{H(3p-_JNEUgad(Q++Rn&-Etbx){-OW)g#PQunm*+1={r8yDThD6%wrp7qD~s z=AT(s>(5E@^!D-~Ofon3E8$L{&tu^pg31rq!Iyu}Pl7o2<1EPQ_GC8^gwjjvAl^gi zZ!{>I_)U_eTV*L0aj;9$2r@4^gnp`h084)~&=3PqnKMgYZYh>Yu!YDAVvuCb z0a+2b>azXPAde1|#?_hw{tmCW0;%d#ZykB-q^AA~q3{5^F!6Gp$3R{N^_feEn^ZC~ z>!hL%U40hEDCwD`5LGi_3RI-LNPVh^#3XqJ2`L9N9<9qV%gnUxGMcEA$x3y++|GL7 z?Gx5-5755Mt|u`m$r*};P%JE6SKY!&XryY~Z%46)P;7)^V^#i4ae=%RXH%^46m2Xc zi@TlN=Hx@E6zh`Jn4fGj&xkj~L0vj{1bB%Z+@ChSCYNFL8|w@Ksq8*=OQ9+lsoRR9 zt+{~R*Qn}OGN}rO`oHe85#5I}j?59=aLUunXdk+()Z4!&VUjk#hr;cDcvPcldsnFE Hk0=Vi0sgj* literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/vs_albedo_output.bin b/examples/runtime/shaders/glsl/vs_albedo_output.bin new file mode 100644 index 0000000000000000000000000000000000000000..490de47ca1de549587a49f469b98aa1bffba90f1 GIT binary patch literal 415 zcmZutOA5j;6pT_4a*DUKE{djZq_}q}2yR3|wNWCrsWGiTyo%@X9G=7%zfs&hX6DTd zGaB}5-OKq}CA8qB6x)GTORqvmh13h4szj_jAOy%7vDg?br-czvidhIT&(%g6sj`TE zQ4A>~b~B}P(u!yq>%Ght_K891GDRlmN~e&{sM#L}7Camp&vC}B2{hl4zGbb$V#No~ YZ7>eSuW3JG=3AjN$Gw*`+lf+g10Di}u>b%7 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/vs_fullscreen.bin b/examples/runtime/shaders/glsl/vs_fullscreen.bin new file mode 100644 index 0000000000000000000000000000000000000000..16256a7f9e6243625b71792c41520bc4d6fc9b99 GIT binary patch literal 307 zcmZ9HKMTSz5XDo_C4+tgxv_O9R^6)3j)KsPLA=1NTesQBHzic0Kq9Ph`y_b%CQ zhd9}+JT|V<0&{sulx%he&jXJ!kBw*wYmGWoRzfYa1&Fl7tFj7p%>U4wkd