From e538df3673c5c7b765970ebb135e169062d25ebf Mon Sep 17 00:00:00 2001 From: Diego Lopes Date: Wed, 18 Mar 2026 00:25:31 -0400 Subject: [PATCH] Refactor code structure for improved readability and maintainability --- .gitignore | 5 + .vscode/launch.json | 24 + .vscode/settings.json | 3 + .vscode/tasks.json | 30 + CMakeLists.txt | 92 + CMakePresets.json | 32 + external/glad/CMakeLists.txt | 2 + external/glad/include/KHR/khrplatform.h | 311 ++ external/glad/include/glad/gl.h | 3637 +++++++++++++++++++++++ external/glad/src/gl.c | 1620 ++++++++++ samples/auroras.lua | 156 + samples/dry_rocky_gorge.lua | 290 ++ samples/rock_texture.jpg | Bin 0 -> 740287 bytes samples/simple.lua | 21 + samples/sunset_sea.lua | 169 ++ src/effect.cpp | 237 ++ src/effect.h | 38 + src/framebuffer.cpp | 166 ++ src/framebuffer.h | 52 + src/fx_vertex.glsl.h | 14 + src/globals.h | 12 + src/gpu.hpp | 19 + src/lua.cpp | 450 +++ src/lua.h | 5 + src/main.cpp | 217 ++ src/opengl.cpp | 100 + src/opengl.h | 47 + src/script.cpp | 83 + src/script.h | 24 + src/stb.cpp | 2 + src/texture.cpp | 253 ++ src/texture.h | 165 + src/tmath.cpp | 2 + src/tmath.hpp | 965 ++++++ 34 files changed, 9243 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 CMakeLists.txt create mode 100644 CMakePresets.json create mode 100644 external/glad/CMakeLists.txt create mode 100644 external/glad/include/KHR/khrplatform.h create mode 100644 external/glad/include/glad/gl.h create mode 100644 external/glad/src/gl.c create mode 100644 samples/auroras.lua create mode 100644 samples/dry_rocky_gorge.lua create mode 100644 samples/rock_texture.jpg create mode 100644 samples/simple.lua create mode 100644 samples/sunset_sea.lua create mode 100644 src/effect.cpp create mode 100644 src/effect.h create mode 100644 src/framebuffer.cpp create mode 100644 src/framebuffer.h create mode 100644 src/fx_vertex.glsl.h create mode 100644 src/globals.h create mode 100644 src/gpu.hpp create mode 100644 src/lua.cpp create mode 100644 src/lua.h create mode 100644 src/main.cpp create mode 100644 src/opengl.cpp create mode 100644 src/opengl.h create mode 100644 src/script.cpp create mode 100644 src/script.h create mode 100644 src/stb.cpp create mode 100644 src/texture.cpp create mode 100644 src/texture.h create mode 100644 src/tmath.cpp create mode 100644 src/tmath.hpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..912713d --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +build/ +.cache/ +compile_commands.json +CMakeUserPresets.json +cmake/ diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..7378dc0 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug live-wallpaper", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/build/debug/live-wallpaper", + "args": [ + "${workspaceFolder}/samples/dry_rocky_gorge.lua" + ], + "cwd": "${workspaceFolder}", + "environment": [], + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..70e34ec --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "C_Cpp.errorSquiggles": "disabled" +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..e78dfef --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,30 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "CMake: configure debug", + "type": "shell", + "command": "cmake", + "args": ["--preset", "debug"], + "options": { + "cwd": "${workspaceFolder}" + }, + "problemMatcher": [] + }, + { + "label": "CMake: build debug", + "type": "shell", + "command": "cmake", + "args": ["--build", "--preset", "debug"], + "options": { + "cwd": "${workspaceFolder}" + }, + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": "$gcc", + "dependsOn": "CMake: configure debug" + } + ] +} diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ab16afe --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,92 @@ +cmake_minimum_required(VERSION 3.25) +project(live-wallpaper LANGUAGES C CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +# ── CPM ────────────────────────────────────────────────────────────────────── +set(CPM_DOWNLOAD_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/cmake/CPM.cmake") + +if(NOT EXISTS "${CPM_DOWNLOAD_LOCATION}") + message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}") + file(DOWNLOAD + "https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/CPM.cmake" + "${CPM_DOWNLOAD_LOCATION}" + ) +endif() + +include("${CPM_DOWNLOAD_LOCATION}") + +# ── Dependencies ───────────────────────────────────────────────────────────── +CPMAddPackage( + NAME SDL3 + GITHUB_REPOSITORY libsdl-org/SDL + GIT_TAG main + OPTIONS + "SDL_SHARED OFF" + "SDL_STATIC ON" + "SDL_TEST_LIBRARY OFF" + "SDL_TESTS OFF" + "SDL_EXAMPLES OFF" + "SDL_X11_XSCRNSAVER OFF" +) +CPMAddPackage( + NAME lua + GIT_TAG v5.4.7 + GITHUB_REPOSITORY walterschell/Lua + OPTIONS + "LUA_BUILD_COMPILER OFF" + "LUA_BUILD_INTERPRETER OFF" +) +CPMAddPackage( + NAME sol2 + GITHUB_REPOSITORY ThePhD/sol2 + GIT_TAG v3.3.0 + OPTIONS + "SOL2_LUA_VERSION 5.4.7" +) +CPMAddPackage( + NAME stb + GITHUB_REPOSITORY nothings/stb + GIT_TAG master + DOWNLOAD_ONLY YES +) +if(stb_ADDED) + add_library(stb INTERFACE) + target_include_directories(stb INTERFACE ${stb_SOURCE_DIR}) +endif() + +# ── Local dependencies ─────────────────────────────────────────────────────── +add_subdirectory(external/glad) + +find_package(OpenGL REQUIRED) +find_package(X11 REQUIRED) + +# ── Source Files ───────────────────────────────────────────────────────────── +file(GLOB_RECURSE SOURCE_FILES + src/*.cpp + src/*.hpp + src/*.h +) + +# ── Executable ─────────────────────────────────────────────────────────────── +add_executable(${PROJECT_NAME} ${SOURCE_FILES}) + +target_link_libraries(${PROJECT_NAME} + PRIVATE + SDL3::SDL3-static + OpenGL::GL + X11::X11 + Xext + Lua::Library + sol2 + stb + glad +) + +target_include_directories(${PROJECT_NAME} + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/src +) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..27150bc --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,32 @@ +{ + "version": 6, + "cmakeMinimumRequired": { "major": 3, "minor": 25, "patch": 0 }, + "configurePresets": [ + { + "name": "debug", + "displayName": "Debug", + "binaryDir": "${sourceDir}/build/debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } + }, + { + "name": "release", + "displayName": "Release", + "binaryDir": "${sourceDir}/build/release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release" + } + } + ], + "buildPresets": [ + { + "name": "debug", + "configurePreset": "debug" + }, + { + "name": "release", + "configurePreset": "release" + } + ] +} diff --git a/external/glad/CMakeLists.txt b/external/glad/CMakeLists.txt new file mode 100644 index 0000000..624c706 --- /dev/null +++ b/external/glad/CMakeLists.txt @@ -0,0 +1,2 @@ +add_library(glad STATIC src/gl.c) +target_include_directories(glad PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) diff --git a/external/glad/include/KHR/khrplatform.h b/external/glad/include/KHR/khrplatform.h new file mode 100644 index 0000000..0164644 --- /dev/null +++ b/external/glad/include/KHR/khrplatform.h @@ -0,0 +1,311 @@ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2018 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. + * + * The master copy of khrplatform.h is maintained in the Khronos EGL + * Registry repository at https://github.com/KhronosGroup/EGL-Registry + * The last semantic modification to khrplatform.h was at commit ID: + * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by filing pull requests or issues on + * the EGL Registry repository linked above. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) +# define KHRONOS_STATIC 1 +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(KHRONOS_STATIC) + /* If the preprocessor constant KHRONOS_STATIC is defined, make the + * header compatible with static linking. */ +# define KHRONOS_APICALL +#elif defined(_WIN32) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#elif defined(__ANDROID__) +# define KHRONOS_APICALL __attribute__((visibility("default"))) +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) + /* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 +/* + * To support platform where unsigned long cannot be used interchangeably with + * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. + * Ideally, we could just use (u)intptr_t everywhere, but this could result in + * ABI breakage if khronos_uintptr_t is changed from unsigned long to + * unsigned long long or similar (this results in different C++ name mangling). + * To avoid changes for existing platforms, we restrict usage of intptr_t to + * platforms where the size of a pointer is larger than the size of long. + */ +#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) +#if __SIZEOF_POINTER__ > __SIZEOF_LONG__ +#define KHRONOS_USE_INTPTR_T +#endif +#endif + +#elif defined(__VMS ) || defined(__sgi) + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* + * Win32 + */ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* + * Sun or Digital + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* + * Hypothetical platform with no float or int64 support + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* + * Generic fallback + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* + * Types that are (so far) the same on all platforms + */ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* + * Types that differ between LLP64 and LP64 architectures - in LLP64, + * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears + * to be the only LLP64 architecture in current use. + */ +#ifdef KHRONOS_USE_INTPTR_T +typedef intptr_t khronos_intptr_t; +typedef uintptr_t khronos_uintptr_t; +#elif defined(_WIN64) +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +#endif + +#if defined(_WIN64) +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* + * Float type + */ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types + * + * These types can be used to represent a time interval in nanoseconds or + * an absolute Unadjusted System Time. Unadjusted System Time is the number + * of nanoseconds since some arbitrary system event (e.g. since the last + * time the system booted). The Unadjusted System Time is an unsigned + * 64 bit value that wraps back to 0 every 584 years. Time intervals + * may be either signed or unsigned. + */ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* + * Dummy value used to pad enum types to 32 bits. + */ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* + * Enumerated boolean type + * + * Values other than zero should be considered to be true. Therefore + * comparisons should not be made against KHRONOS_TRUE. + */ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ diff --git a/external/glad/include/glad/gl.h b/external/glad/include/glad/gl.h new file mode 100644 index 0000000..299889e --- /dev/null +++ b/external/glad/include/glad/gl.h @@ -0,0 +1,3637 @@ +/** + * Loader generated by glad 2.0.8 on Tue Mar 17 23:57:39 2026 + * + * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0 + * + * Generator: C/C++ + * Specification: gl + * Extensions: 0 + * + * APIs: + * - gl:core=4.6 + * + * Options: + * - ALIAS = False + * - DEBUG = False + * - HEADER_ONLY = False + * - LOADER = False + * - MX = False + * - ON_DEMAND = False + * + * Commandline: + * --api='gl:core=4.6' --extensions='' c + * + * Online: + * http://glad.sh/#api=gl%3Acore%3D4.6&extensions=&generator=c&options= + * + */ + +#ifndef GLAD_GL_H_ +#define GLAD_GL_H_ + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-id-macro" +#endif +#ifdef __gl_h_ + #error OpenGL (gl.h) header already included (API: gl), remove previous include! +#endif +#define __gl_h_ 1 +#ifdef __gl3_h_ + #error OpenGL (gl3.h) header already included (API: gl), remove previous include! +#endif +#define __gl3_h_ 1 +#ifdef __glext_h_ + #error OpenGL (glext.h) header already included (API: gl), remove previous include! +#endif +#define __glext_h_ 1 +#ifdef __gl3ext_h_ + #error OpenGL (gl3ext.h) header already included (API: gl), remove previous include! +#endif +#define __gl3ext_h_ 1 +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#define GLAD_GL + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef GLAD_PLATFORM_H_ +#define GLAD_PLATFORM_H_ + +#ifndef GLAD_PLATFORM_WIN32 + #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__) + #define GLAD_PLATFORM_WIN32 1 + #else + #define GLAD_PLATFORM_WIN32 0 + #endif +#endif + +#ifndef GLAD_PLATFORM_APPLE + #ifdef __APPLE__ + #define GLAD_PLATFORM_APPLE 1 + #else + #define GLAD_PLATFORM_APPLE 0 + #endif +#endif + +#ifndef GLAD_PLATFORM_EMSCRIPTEN + #ifdef __EMSCRIPTEN__ + #define GLAD_PLATFORM_EMSCRIPTEN 1 + #else + #define GLAD_PLATFORM_EMSCRIPTEN 0 + #endif +#endif + +#ifndef GLAD_PLATFORM_UWP + #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY) + #ifdef __has_include + #if __has_include() + #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1 + #endif + #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_ + #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1 + #endif + #endif + + #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY + #include + #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + #define GLAD_PLATFORM_UWP 1 + #endif + #endif + + #ifndef GLAD_PLATFORM_UWP + #define GLAD_PLATFORM_UWP 0 + #endif +#endif + +#ifdef __GNUC__ + #define GLAD_GNUC_EXTENSION __extension__ +#else + #define GLAD_GNUC_EXTENSION +#endif + +#define GLAD_UNUSED(x) (void)(x) + +#ifndef GLAD_API_CALL + #if defined(GLAD_API_CALL_EXPORT) + #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__) + #if defined(GLAD_API_CALL_EXPORT_BUILD) + #if defined(__GNUC__) + #define GLAD_API_CALL __attribute__ ((dllexport)) extern + #else + #define GLAD_API_CALL __declspec(dllexport) extern + #endif + #else + #if defined(__GNUC__) + #define GLAD_API_CALL __attribute__ ((dllimport)) extern + #else + #define GLAD_API_CALL __declspec(dllimport) extern + #endif + #endif + #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD) + #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern + #else + #define GLAD_API_CALL extern + #endif + #else + #define GLAD_API_CALL extern + #endif +#endif + +#ifdef APIENTRY + #define GLAD_API_PTR APIENTRY +#elif GLAD_PLATFORM_WIN32 + #define GLAD_API_PTR __stdcall +#else + #define GLAD_API_PTR +#endif + +#ifndef GLAPI +#define GLAPI GLAD_API_CALL +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY GLAD_API_PTR +#endif + +#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor) +#define GLAD_VERSION_MAJOR(version) (version / 10000) +#define GLAD_VERSION_MINOR(version) (version % 10000) + +#define GLAD_GENERATOR_VERSION "2.0.8" + +typedef void (*GLADapiproc)(void); + +typedef GLADapiproc (*GLADloadfunc)(const char *name); +typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name); + +typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...); +typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...); + +#endif /* GLAD_PLATFORM_H_ */ + +#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_ACTIVE_RESOURCES 0x92F5 +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_ACTIVE_VARIABLES 0x9305 +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_ALL_BARRIER_BITS 0xFFFFFFFF +#define GL_ALL_SHADER_BITS 0xFFFFFFFF +#define GL_ALPHA 0x1906 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_ALWAYS 0x0207 +#define GL_AND 0x1501 +#define GL_AND_INVERTED 0x1504 +#define GL_AND_REVERSE 0x1502 +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ARRAY_SIZE 0x92FB +#define GL_ARRAY_STRIDE 0x92FE +#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 +#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 +#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 +#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 +#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 +#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 +#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_AUTO_GENERATE_MIPMAP 0x8295 +#define GL_BACK 0x0405 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_BGRA_INTEGER 0x8D9B +#define GL_BGR_INTEGER 0x8D9A +#define GL_BLEND 0x0BE2 +#define GL_BLEND_COLOR 0x8005 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_EQUATION 0x8009 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLOCK_INDEX 0x92FD +#define GL_BLUE 0x1905 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_BUFFER 0x82E0 +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_BINDING 0x9302 +#define GL_BUFFER_DATA_SIZE 0x9303 +#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_STORAGE_FLAGS 0x8220 +#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 +#define GL_BUFFER_USAGE 0x8765 +#define GL_BUFFER_VARIABLE 0x92E5 +#define GL_BYTE 0x1400 +#define GL_CAVEAT_SUPPORT 0x82B8 +#define GL_CCW 0x0901 +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_CLEAR 0x1500 +#define GL_CLEAR_BUFFER 0x82B4 +#define GL_CLEAR_TEXTURE 0x9365 +#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 +#define GL_CLIENT_STORAGE_BIT 0x0200 +#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 +#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 +#define GL_CLIP_DEPTH_MODE 0x935D +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +#define GL_CLIP_ORIGIN 0x935C +#define GL_COLOR 0x1800 +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_COLOR_ATTACHMENT16 0x8CF0 +#define GL_COLOR_ATTACHMENT17 0x8CF1 +#define GL_COLOR_ATTACHMENT18 0x8CF2 +#define GL_COLOR_ATTACHMENT19 0x8CF3 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT20 0x8CF4 +#define GL_COLOR_ATTACHMENT21 0x8CF5 +#define GL_COLOR_ATTACHMENT22 0x8CF6 +#define GL_COLOR_ATTACHMENT23 0x8CF7 +#define GL_COLOR_ATTACHMENT24 0x8CF8 +#define GL_COLOR_ATTACHMENT25 0x8CF9 +#define GL_COLOR_ATTACHMENT26 0x8CFA +#define GL_COLOR_ATTACHMENT27 0x8CFB +#define GL_COLOR_ATTACHMENT28 0x8CFC +#define GL_COLOR_ATTACHMENT29 0x8CFD +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT30 0x8CFE +#define GL_COLOR_ATTACHMENT31 0x8CFF +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_COMPONENTS 0x8283 +#define GL_COLOR_ENCODING 0x8296 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_COLOR_RENDERABLE 0x8286 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_COMMAND_BARRIER_BIT 0x00000040 +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B +#define GL_COMPILE_STATUS 0x8B81 +#define GL_COMPRESSED_R11_EAC 0x9270 +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_RG 0x8226 +#define GL_COMPRESSED_RG11_EAC 0x9272 +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGB8_ETC2 0x9274 +#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 +#define GL_COMPRESSED_SRGB8_ETC2 0x9275 +#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_COMPUTE_SHADER 0x91B9 +#define GL_COMPUTE_SHADER_BIT 0x00000020 +#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 +#define GL_COMPUTE_SUBROUTINE 0x92ED +#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 +#define GL_COMPUTE_TEXTURE 0x82A0 +#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 +#define GL_CONDITION_SATISFIED 0x911C +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_CONSTANT_COLOR 0x8001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_FLAGS 0x821E +#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 +#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 +#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 +#define GL_CONTEXT_LOST 0x0507 +#define GL_CONTEXT_PROFILE_MASK 0x9126 +#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB +#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC +#define GL_COPY 0x1503 +#define GL_COPY_INVERTED 0x150C +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_READ_BUFFER_BINDING 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 +#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_CURRENT_QUERY 0x8865 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_CW 0x0900 +#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 +#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GL_DEBUG_LOGGED_MESSAGES 0x9145 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 +#define GL_DEBUG_OUTPUT 0x92E0 +#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 +#define GL_DEBUG_SEVERITY_HIGH 0x9146 +#define GL_DEBUG_SEVERITY_LOW 0x9148 +#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 +#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GL_DEBUG_SOURCE_API 0x8246 +#define GL_DEBUG_SOURCE_APPLICATION 0x824A +#define GL_DEBUG_SOURCE_OTHER 0x824B +#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D +#define GL_DEBUG_TYPE_ERROR 0x824C +#define GL_DEBUG_TYPE_MARKER 0x8268 +#define GL_DEBUG_TYPE_OTHER 0x8251 +#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 +#define GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GL_DEBUG_TYPE_PORTABILITY 0x824F +#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E +#define GL_DECR 0x1E03 +#define GL_DECR_WRAP 0x8508 +#define GL_DELETE_STATUS 0x8B80 +#define GL_DEPTH 0x1801 +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_DEPTH_CLAMP 0x864F +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH_COMPONENTS 0x8284 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_RENDERABLE 0x8287 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE +#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF +#define GL_DITHER 0x0BD0 +#define GL_DONT_CARE 0x1100 +#define GL_DOUBLE 0x140A +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE +#define GL_DRAW_BUFFER 0x0C01 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#define GL_DST_ALPHA 0x0304 +#define GL_DST_COLOR 0x0306 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_STORAGE_BIT 0x0100 +#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_EQUAL 0x0202 +#define GL_EQUIV 0x1509 +#define GL_EXTENSIONS 0x1F03 +#define GL_FALSE 0 +#define GL_FASTEST 0x1101 +#define GL_FILL 0x1B02 +#define GL_FILTER 0x829A +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_FIXED 0x140C +#define GL_FIXED_ONLY 0x891D +#define GL_FLOAT 0x1406 +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4 0x8B5C +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 +#define GL_FRAGMENT_SUBROUTINE 0x92EC +#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 +#define GL_FRAGMENT_TEXTURE 0x829F +#define GL_FRAMEBUFFER 0x8D40 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_FRAMEBUFFER_BLEND 0x828B +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 +#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 +#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 +#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_RENDERABLE 0x8289 +#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_FRONT 0x0404 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_FRONT_FACE 0x0B46 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_FULL_SUPPORT 0x82B7 +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_FUNC_SUBTRACT 0x800A +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 +#define GL_GEOMETRY_SUBROUTINE 0x92EB +#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 +#define GL_GEOMETRY_TEXTURE 0x829E +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEQUAL 0x0206 +#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 +#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 +#define GL_GREATER 0x0204 +#define GL_GREEN 0x1904 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_GUILTY_CONTEXT_RESET 0x8253 +#define GL_HALF_FLOAT 0x140B +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_HIGH_INT 0x8DF5 +#define GL_IMAGE_1D 0x904C +#define GL_IMAGE_1D_ARRAY 0x9052 +#define GL_IMAGE_2D 0x904D +#define GL_IMAGE_2D_ARRAY 0x9053 +#define GL_IMAGE_2D_MULTISAMPLE 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 +#define GL_IMAGE_2D_RECT 0x904F +#define GL_IMAGE_3D 0x904E +#define GL_IMAGE_BINDING_ACCESS 0x8F3E +#define GL_IMAGE_BINDING_FORMAT 0x906E +#define GL_IMAGE_BINDING_LAYER 0x8F3D +#define GL_IMAGE_BINDING_LAYERED 0x8F3C +#define GL_IMAGE_BINDING_LEVEL 0x8F3B +#define GL_IMAGE_BINDING_NAME 0x8F3A +#define GL_IMAGE_BUFFER 0x9051 +#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 +#define GL_IMAGE_CLASS_11_11_10 0x82C2 +#define GL_IMAGE_CLASS_1_X_16 0x82BE +#define GL_IMAGE_CLASS_1_X_32 0x82BB +#define GL_IMAGE_CLASS_1_X_8 0x82C1 +#define GL_IMAGE_CLASS_2_X_16 0x82BD +#define GL_IMAGE_CLASS_2_X_32 0x82BA +#define GL_IMAGE_CLASS_2_X_8 0x82C0 +#define GL_IMAGE_CLASS_4_X_16 0x82BC +#define GL_IMAGE_CLASS_4_X_32 0x82B9 +#define GL_IMAGE_CLASS_4_X_8 0x82BF +#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 +#define GL_IMAGE_CUBE 0x9050 +#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 +#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 +#define GL_IMAGE_PIXEL_FORMAT 0x82A9 +#define GL_IMAGE_PIXEL_TYPE 0x82AA +#define GL_IMAGE_TEXEL_SIZE 0x82A7 +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_INCR 0x1E02 +#define GL_INCR_WRAP 0x8507 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_INNOCENT_CONTEXT_RESET 0x8254 +#define GL_INT 0x1404 +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 +#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B +#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 +#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A +#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 +#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C +#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 +#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 +#define GL_INTERNALFORMAT_PREFERRED 0x8270 +#define GL_INTERNALFORMAT_RED_SIZE 0x8271 +#define GL_INTERNALFORMAT_RED_TYPE 0x8278 +#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 +#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 +#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D +#define GL_INTERNALFORMAT_SUPPORTED 0x826F +#define GL_INT_2_10_10_10_REV 0x8D9F +#define GL_INT_IMAGE_1D 0x9057 +#define GL_INT_IMAGE_1D_ARRAY 0x905D +#define GL_INT_IMAGE_2D 0x9058 +#define GL_INT_IMAGE_2D_ARRAY 0x905E +#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 +#define GL_INT_IMAGE_2D_RECT 0x905A +#define GL_INT_IMAGE_3D 0x9059 +#define GL_INT_IMAGE_BUFFER 0x905C +#define GL_INT_IMAGE_CUBE 0x905B +#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_INVALID_INDEX 0xFFFFFFFF +#define GL_INVALID_OPERATION 0x0502 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVERT 0x150A +#define GL_ISOLINES 0x8E7A +#define GL_IS_PER_PATCH 0x92E7 +#define GL_IS_ROW_MAJOR 0x9300 +#define GL_KEEP 0x1E00 +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_LEFT 0x0406 +#define GL_LEQUAL 0x0203 +#define GL_LESS 0x0201 +#define GL_LINE 0x1B01 +#define GL_LINEAR 0x2601 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_LINES 0x0001 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_LINE_STRIP 0x0003 +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINK_STATUS 0x8B82 +#define GL_LOCATION 0x930E +#define GL_LOCATION_COMPONENT 0x934A +#define GL_LOCATION_INDEX 0x930F +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_LOSE_CONTEXT_ON_RESET 0x8252 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_LOW_FLOAT 0x8DF0 +#define GL_LOW_INT 0x8DF3 +#define GL_MAJOR_VERSION 0x821B +#define GL_MANUAL_GENERATE_MIPMAP 0x8294 +#define GL_MAP_COHERENT_BIT 0x0080 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_PERSISTENT_BIT 0x0040 +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MATRIX_STRIDE 0x92FF +#define GL_MAX 0x8008 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC +#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 +#define GL_MAX_CLIP_DISTANCES 0x0D32 +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 +#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 +#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA +#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 +#define GL_MAX_COMBINED_DIMENSIONS 0x8282 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 +#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 +#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 +#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 +#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD +#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB +#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 +#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC +#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB +#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 +#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE +#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB +#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_MAX_CULL_DISTANCES 0x82F9 +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 +#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 +#define GL_MAX_DEPTH 0x8280 +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENT_INDEX 0x8D6B +#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 +#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 +#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 +#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 +#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 +#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_HEIGHT 0x827F +#define GL_MAX_IMAGE_SAMPLES 0x906D +#define GL_MAX_IMAGE_UNITS 0x8F38 +#define GL_MAX_INTEGER_SAMPLES 0x9110 +#define GL_MAX_LABEL_LENGTH 0x82E8 +#define GL_MAX_LAYERS 0x8281 +#define GL_MAX_NAME_LENGTH 0x92F6 +#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 +#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_MAX_SAMPLES 0x8D57 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE +#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_LOCATIONS 0x826E +#define GL_MAX_VARYING_COMPONENTS 0x8B4B +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 +#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA +#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 +#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 +#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 +#define GL_MAX_VERTEX_STREAMS 0x8E71 +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VIEWPORTS 0x825B +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_WIDTH 0x827E +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_MIN 0x8007 +#define GL_MINOR_VERSION 0x821C +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MIPMAP 0x8293 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 +#define GL_MULTISAMPLE 0x809D +#define GL_NAME_LENGTH 0x92F9 +#define GL_NAND 0x150E +#define GL_NEAREST 0x2600 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_NEGATIVE_ONE_TO_ONE 0x935E +#define GL_NEVER 0x0200 +#define GL_NICEST 0x1102 +#define GL_NONE 0 +#define GL_NOOP 0x1505 +#define GL_NOR 0x1508 +#define GL_NOTEQUAL 0x0205 +#define GL_NO_ERROR 0 +#define GL_NO_RESET_NOTIFICATION 0x8261 +#define GL_NUM_ACTIVE_VARIABLES 0x9304 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_NUM_EXTENSIONS 0x821D +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_NUM_SAMPLE_COUNTS 0x9380 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 +#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 +#define GL_OBJECT_TYPE 0x9112 +#define GL_OFFSET 0x92FC +#define GL_ONE 1 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_OR 0x1507 +#define GL_OR_INVERTED 0x150D +#define GL_OR_REVERSE 0x150B +#define GL_OUT_OF_MEMORY 0x0505 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D +#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C +#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E +#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PARAMETER_BUFFER 0x80EE +#define GL_PARAMETER_BUFFER_BINDING 0x80EF +#define GL_PATCHES 0x000E +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_POINT 0x1B00 +#define GL_POINTS 0x0000 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_OFFSET_CLAMP 0x8E1B +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_PRIMITIVES_SUBMITTED 0x82EF +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +#define GL_PROGRAM 0x82E2 +#define GL_PROGRAM_BINARY_FORMATS 0x87FF +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_INPUT 0x92E3 +#define GL_PROGRAM_OUTPUT 0x92E4 +#define GL_PROGRAM_PIPELINE 0x82E4 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_PROVOKING_VERTEX 0x8E4F +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_QUADS 0x0007 +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#define GL_QUERY 0x82E3 +#define GL_QUERY_BUFFER 0x9192 +#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 +#define GL_QUERY_BUFFER_BINDING 0x9193 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_NO_WAIT_INVERTED 0x8E18 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_QUERY_RESULT_NO_WAIT 0x9194 +#define GL_QUERY_TARGET 0x82EA +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_WAIT_INVERTED 0x8E17 +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_R16 0x822A +#define GL_R16F 0x822D +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R16_SNORM 0x8F98 +#define GL_R32F 0x822E +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_R3_G3_B2 0x2A10 +#define GL_R8 0x8229 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R8_SNORM 0x8F94 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_READ_BUFFER 0x0C02 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_READ_ONLY 0x88B8 +#define GL_READ_PIXELS 0x828C +#define GL_READ_PIXELS_FORMAT 0x828D +#define GL_READ_PIXELS_TYPE 0x828E +#define GL_READ_WRITE 0x88BA +#define GL_RED 0x1903 +#define GL_RED_INTEGER 0x8D94 +#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B +#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A +#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 +#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERER 0x1F01 +#define GL_REPEAT 0x2901 +#define GL_REPLACE 0x1E01 +#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 +#define GL_RG 0x8227 +#define GL_RG16 0x822C +#define GL_RG16F 0x822F +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG16_SNORM 0x8F99 +#define GL_RG32F 0x8230 +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#define GL_RG8 0x822B +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB 0x1907 +#define GL_RGB10 0x8052 +#define GL_RGB10_A2 0x8059 +#define GL_RGB10_A2UI 0x906F +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGB16F 0x881B +#define GL_RGB16I 0x8D89 +#define GL_RGB16UI 0x8D77 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGB32F 0x8815 +#define GL_RGB32I 0x8D83 +#define GL_RGB32UI 0x8D71 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB565 0x8D62 +#define GL_RGB5_A1 0x8057 +#define GL_RGB8 0x8051 +#define GL_RGB8I 0x8D8F +#define GL_RGB8UI 0x8D7D +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGB9_E5 0x8C3D +#define GL_RGBA 0x1908 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_RGBA16F 0x881A +#define GL_RGBA16I 0x8D88 +#define GL_RGBA16UI 0x8D76 +#define GL_RGBA16_SNORM 0x8F9B +#define GL_RGBA2 0x8055 +#define GL_RGBA32F 0x8814 +#define GL_RGBA32I 0x8D82 +#define GL_RGBA32UI 0x8D70 +#define GL_RGBA4 0x8056 +#define GL_RGBA8 0x8058 +#define GL_RGBA8I 0x8D8E +#define GL_RGBA8UI 0x8D7C +#define GL_RGBA8_SNORM 0x8F97 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RG_INTEGER 0x8228 +#define GL_RIGHT 0x0407 +#define GL_SAMPLER 0x82E6 +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_BINDING 0x8919 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLES_PASSED 0x8914 +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_SET 0x150F +#define GL_SHADER 0x82E1 +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 +#define GL_SHADER_IMAGE_ATOMIC 0x82A6 +#define GL_SHADER_IMAGE_LOAD 0x82A4 +#define GL_SHADER_IMAGE_STORE 0x82A5 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 +#define GL_SHADER_STORAGE_BLOCK 0x92E6 +#define GL_SHADER_STORAGE_BUFFER 0x90D2 +#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 +#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF +#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 +#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 +#define GL_SHADER_TYPE 0x8B4F +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_SHORT 0x1402 +#define GL_SIGNALED 0x9119 +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SPIR_V_BINARY 0x9552 +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_SRC1_ALPHA 0x8589 +#define GL_SRC1_COLOR 0x88F9 +#define GL_SRC_ALPHA 0x0302 +#define GL_SRC_ALPHA_SATURATE 0x0308 +#define GL_SRC_COLOR 0x0300 +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB_READ 0x8297 +#define GL_SRGB_WRITE 0x8298 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_STATIC_COPY 0x88E6 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STENCIL 0x1802 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_COMPONENTS 0x8285 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_INDEX 0x1901 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_RENDERABLE 0x8288 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_STEREO 0x0C33 +#define GL_STREAM_COPY 0x88E2 +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_SYNC_STATUS 0x9114 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 +#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 +#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF +#define GL_TESS_CONTROL_TEXTURE 0x829C +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 +#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA +#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 +#define GL_TESS_EVALUATION_TEXTURE 0x829D +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TEXTURE 0x1702 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_TEXTURE_3D 0x806F +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_TEXTURE_BUFFER_BINDING 0x8C2A +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_BUFFER_OFFSET 0x919D +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F +#define GL_TEXTURE_BUFFER_SIZE 0x919E +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 +#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 +#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_TEXTURE_GATHER 0x82A2 +#define GL_TEXTURE_GATHER_SHADOW 0x82A3 +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_IMAGE_FORMAT 0x828F +#define GL_TEXTURE_IMAGE_TYPE 0x8290 +#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_SHADOW 0x82A1 +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 +#define GL_TEXTURE_TARGET 0x1006 +#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 +#define GL_TEXTURE_VIEW 0x82B5 +#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD +#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB +#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE +#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF +#define GL_TIMESTAMP 0x8E28 +#define GL_TIME_ELAPSED 0x88BF +#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C +#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C +#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC +#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED +#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_FAN 0x0006 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_TRUE 1 +#define GL_TYPE 0x92FA +#define GL_UNDEFINED_VERTEX 0x8260 +#define GL_UNIFORM 0x92E1 +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA +#define GL_UNIFORM_BARRIER_BIT 0x00000004 +#define GL_UNIFORM_BLOCK 0x92E2 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNKNOWN_CONTEXT_RESET 0x8255 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 +#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 +#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A +#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNSIGNALED 0x9118 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_INT 0x1405 +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB +#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C +#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 +#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 +#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_VENDOR 0x1F00 +#define GL_VERSION 0x1F02 +#define GL_VERTEX_ARRAY 0x8074 +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_ATTRIB_BINDING 0x82D4 +#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 +#define GL_VERTEX_BINDING_BUFFER 0x8F4F +#define GL_VERTEX_BINDING_DIVISOR 0x82D6 +#define GL_VERTEX_BINDING_OFFSET 0x82D7 +#define GL_VERTEX_BINDING_STRIDE 0x82D8 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 +#define GL_VERTEX_SUBROUTINE 0x92E8 +#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE +#define GL_VERTEX_TEXTURE 0x829B +#define GL_VERTICES_SUBMITTED 0x82EE +#define GL_VIEWPORT 0x0BA2 +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEW_CLASS_128_BITS 0x82C4 +#define GL_VIEW_CLASS_16_BITS 0x82CA +#define GL_VIEW_CLASS_24_BITS 0x82C9 +#define GL_VIEW_CLASS_32_BITS 0x82C8 +#define GL_VIEW_CLASS_48_BITS 0x82C7 +#define GL_VIEW_CLASS_64_BITS 0x82C6 +#define GL_VIEW_CLASS_8_BITS 0x82CB +#define GL_VIEW_CLASS_96_BITS 0x82C5 +#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 +#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 +#define GL_VIEW_CLASS_RGTC1_RED 0x82D0 +#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 +#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC +#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD +#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE +#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF +#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 +#define GL_WAIT_FAILED 0x911D +#define GL_WRITE_ONLY 0x88B9 +#define GL_XOR 0x1506 +#define GL_ZERO 0 +#define GL_ZERO_TO_ONE 0x935F + + +#include +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +typedef khronos_int8_t GLbyte; +typedef khronos_uint8_t GLubyte; +typedef khronos_int16_t GLshort; +typedef khronos_uint16_t GLushort; +typedef int GLint; +typedef unsigned int GLuint; +typedef khronos_int32_t GLclampx; +typedef int GLsizei; +typedef khronos_float_t GLfloat; +typedef khronos_float_t GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void *GLeglClientBufferEXT; +typedef void *GLeglImageOES; +typedef char GLchar; +typedef char GLcharARB; +#ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif +typedef khronos_uint16_t GLhalf; +typedef khronos_uint16_t GLhalfARB; +typedef khronos_int32_t GLfixed; +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) +typedef khronos_intptr_t GLintptr; +#else +typedef khronos_intptr_t GLintptr; +#endif +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) +typedef khronos_intptr_t GLintptrARB; +#else +typedef khronos_intptr_t GLintptrARB; +#endif +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) +typedef khronos_ssize_t GLsizeiptr; +#else +typedef khronos_ssize_t GLsizeiptr; +#endif +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) +typedef khronos_ssize_t GLsizeiptrARB; +#else +typedef khronos_ssize_t GLsizeiptrARB; +#endif +typedef khronos_int64_t GLint64; +typedef khronos_int64_t GLint64EXT; +typedef khronos_uint64_t GLuint64; +typedef khronos_uint64_t GLuint64EXT; +typedef struct __GLsync *GLsync; +struct _cl_context; +struct _cl_event; +typedef void (GLAD_API_PTR *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (GLAD_API_PTR *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (GLAD_API_PTR *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (GLAD_API_PTR *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); +typedef unsigned short GLhalfNV; +typedef GLintptr GLvdpauSurfaceNV; +typedef void (GLAD_API_PTR *GLVULKANPROCNV)(void); + + +#define GL_VERSION_1_0 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_0; +#define GL_VERSION_1_1 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_1; +#define GL_VERSION_1_2 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_2; +#define GL_VERSION_1_3 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_3; +#define GL_VERSION_1_4 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_4; +#define GL_VERSION_1_5 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_5; +#define GL_VERSION_2_0 1 +GLAD_API_CALL int GLAD_GL_VERSION_2_0; +#define GL_VERSION_2_1 1 +GLAD_API_CALL int GLAD_GL_VERSION_2_1; +#define GL_VERSION_3_0 1 +GLAD_API_CALL int GLAD_GL_VERSION_3_0; +#define GL_VERSION_3_1 1 +GLAD_API_CALL int GLAD_GL_VERSION_3_1; +#define GL_VERSION_3_2 1 +GLAD_API_CALL int GLAD_GL_VERSION_3_2; +#define GL_VERSION_3_3 1 +GLAD_API_CALL int GLAD_GL_VERSION_3_3; +#define GL_VERSION_4_0 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_0; +#define GL_VERSION_4_1 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_1; +#define GL_VERSION_4_2 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_2; +#define GL_VERSION_4_3 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_3; +#define GL_VERSION_4_4 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_4; +#define GL_VERSION_4_5 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_5; +#define GL_VERSION_4_6 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_6; + + +typedef void (GLAD_API_PTR *PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program); +typedef void (GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture); +typedef void (GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); +typedef void (GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode); +typedef void (GLAD_API_PTR *PFNGLBEGINQUERYPROC)(GLenum target, GLuint id); +typedef void (GLAD_API_PTR *PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id); +typedef void (GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode); +typedef void (GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar * name); +typedef void (GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAD_API_PTR *PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers); +typedef void (GLAD_API_PTR *PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes); +typedef void (GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar * name); +typedef void (GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name); +typedef void (GLAD_API_PTR *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer); +typedef void (GLAD_API_PTR *PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +typedef void (GLAD_API_PTR *PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count, const GLuint * textures); +typedef void (GLAD_API_PTR *PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline); +typedef void (GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); +typedef void (GLAD_API_PTR *PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler); +typedef void (GLAD_API_PTR *PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count, const GLuint * samplers); +typedef void (GLAD_API_PTR *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture); +typedef void (GLAD_API_PTR *PFNGLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture); +typedef void (GLAD_API_PTR *PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count, const GLuint * textures); +typedef void (GLAD_API_PTR *PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id); +typedef void (GLAD_API_PTR *PFNGLBINDVERTEXARRAYPROC)(GLuint array); +typedef void (GLAD_API_PTR *PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (GLAD_API_PTR *PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides); +typedef void (GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONPROC)(GLenum mode); +typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode); +typedef void (GLAD_API_PTR *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor); +typedef void (GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAD_API_PTR *PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst); +typedef void (GLAD_API_PTR *PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (GLAD_API_PTR *PFNGLBLITNAMEDFRAMEBUFFERPROC)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (GLAD_API_PTR *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void * data, GLenum usage); +typedef void (GLAD_API_PTR *PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags); +typedef void (GLAD_API_PTR *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data); +typedef GLenum (GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); +typedef GLenum (GLAD_API_PTR *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer, GLenum target); +typedef void (GLAD_API_PTR *PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp); +typedef void (GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask); +typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERDATAPROC)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data); +typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERSUBDATAPROC)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data); +typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHPROC)(GLdouble depth); +typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHFPROC)(GLfloat d); +typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data); +typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data); +typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLCLEARSTENCILPROC)(GLint s); +typedef void (GLAD_API_PTR *PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, const void * data); +typedef void (GLAD_API_PTR *PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data); +typedef GLenum (GLAD_API_PTR *PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (GLAD_API_PTR *PFNGLCLIPCONTROLPROC)(GLenum origin, GLenum depth); +typedef void (GLAD_API_PTR *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef void (GLAD_API_PTR *PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERPROC)(GLuint shader); +typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data); +typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data); +typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data); +typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data); +typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data); +typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data); +typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data); +typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data); +typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data); +typedef void (GLAD_API_PTR *PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (GLAD_API_PTR *PFNGLCOPYIMAGESUBDATAPROC)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +typedef void (GLAD_API_PTR *PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (GLAD_API_PTR *PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLCREATEBUFFERSPROC)(GLsizei n, GLuint * buffers); +typedef void (GLAD_API_PTR *PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers); +typedef GLuint (GLAD_API_PTR *PFNGLCREATEPROGRAMPROC)(void); +typedef void (GLAD_API_PTR *PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint * pipelines); +typedef void (GLAD_API_PTR *PFNGLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers); +typedef void (GLAD_API_PTR *PFNGLCREATESAMPLERSPROC)(GLsizei n, GLuint * samplers); +typedef GLuint (GLAD_API_PTR *PFNGLCREATESHADERPROC)(GLenum type); +typedef GLuint (GLAD_API_PTR *PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count, const GLchar *const* strings); +typedef void (GLAD_API_PTR *PFNGLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint * textures); +typedef void (GLAD_API_PTR *PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint * arrays); +typedef void (GLAD_API_PTR *PFNGLCULLFACEPROC)(GLenum mode); +typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback, const void * userParam); +typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled); +typedef void (GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf); +typedef void (GLAD_API_PTR *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint * buffers); +typedef void (GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint * framebuffers); +typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program); +typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint * pipelines); +typedef void (GLAD_API_PTR *PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint * renderbuffers); +typedef void (GLAD_API_PTR *PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint * samplers); +typedef void (GLAD_API_PTR *PFNGLDELETESHADERPROC)(GLuint shader); +typedef void (GLAD_API_PTR *PFNGLDELETESYNCPROC)(GLsync sync); +typedef void (GLAD_API_PTR *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint * textures); +typedef void (GLAD_API_PTR *PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint * arrays); +typedef void (GLAD_API_PTR *PFNGLDEPTHFUNCPROC)(GLenum func); +typedef void (GLAD_API_PTR *PFNGLDEPTHMASKPROC)(GLboolean flag); +typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f); +typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLdouble n, GLdouble f); +typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f); +typedef void (GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); +typedef void (GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap); +typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index); +typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); +typedef void (GLAD_API_PTR *PFNGLDISABLEIPROC)(GLenum target, GLuint index); +typedef void (GLAD_API_PTR *PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +typedef void (GLAD_API_PTR *PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect); +typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count); +typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const void * indirect); +typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +typedef void (GLAD_API_PTR *PFNGLDRAWBUFFERPROC)(GLenum buf); +typedef void (GLAD_API_PTR *PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum * bufs); +typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices); +typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex); +typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void * indirect); +typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount); +typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance); +typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex); +typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +typedef void (GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices); +typedef void (GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex); +typedef void (GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id); +typedef void (GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id, GLsizei instancecount); +typedef void (GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id, GLuint stream); +typedef void (GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); +typedef void (GLAD_API_PTR *PFNGLENABLEPROC)(GLenum cap); +typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index); +typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); +typedef void (GLAD_API_PTR *PFNGLENABLEIPROC)(GLenum target, GLuint index); +typedef void (GLAD_API_PTR *PFNGLENDCONDITIONALRENDERPROC)(void); +typedef void (GLAD_API_PTR *PFNGLENDQUERYPROC)(GLenum target); +typedef void (GLAD_API_PTR *PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index); +typedef void (GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKPROC)(void); +typedef GLsync (GLAD_API_PTR *PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags); +typedef void (GLAD_API_PTR *PFNGLFINISHPROC)(void); +typedef void (GLAD_API_PTR *PFNGLFLUSHPROC)(void); +typedef void (GLAD_API_PTR *PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length); +typedef void (GLAD_API_PTR *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode); +typedef void (GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint * buffers); +typedef void (GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers); +typedef void (GLAD_API_PTR *PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint * pipelines); +typedef void (GLAD_API_PTR *PFNGLGENQUERIESPROC)(GLsizei n, GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers); +typedef void (GLAD_API_PTR *PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint * samplers); +typedef void (GLAD_API_PTR *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint * textures); +typedef void (GLAD_API_PTR *PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint * arrays); +typedef void (GLAD_API_PTR *PFNGLGENERATEMIPMAPPROC)(GLenum target); +typedef void (GLAD_API_PTR *PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint texture); +typedef void (GLAD_API_PTR *PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values); +typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName); +typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName); +typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders); +typedef GLint (GLAD_API_PTR *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean * data); +typedef void (GLAD_API_PTR *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean * data); +typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 * params); +typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void ** params); +typedef void (GLAD_API_PTR *PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void * data); +typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void * img); +typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLsizei bufSize, void * pixels); +typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void * pixels); +typedef GLuint (GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog); +typedef void (GLAD_API_PTR *PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble * data); +typedef void (GLAD_API_PTR *PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble * data); +typedef GLenum (GLAD_API_PTR *PFNGLGETERRORPROC)(void); +typedef void (GLAD_API_PTR *PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat * data); +typedef void (GLAD_API_PTR *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat * data); +typedef GLint (GLAD_API_PTR *PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar * name); +typedef GLint (GLAD_API_PTR *PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef GLenum (GLAD_API_PTR *PFNGLGETGRAPHICSRESETSTATUSPROC)(void); +typedef void (GLAD_API_PTR *PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 * data); +typedef void (GLAD_API_PTR *PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 * data); +typedef void (GLAD_API_PTR *PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint * data); +typedef void (GLAD_API_PTR *PFNGLGETINTEGERVPROC)(GLenum pname, GLint * data); +typedef void (GLAD_API_PTR *PFNGLGETINTERNALFORMATI64VPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 * params); +typedef void (GLAD_API_PTR *PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat * val); +typedef void (GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname, GLint64 * params); +typedef void (GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname, void ** params); +typedef void (GLAD_API_PTR *PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data); +typedef void (GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer, GLenum pname, GLint * param); +typedef void (GLAD_API_PTR *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label); +typedef void (GLAD_API_PTR *PFNGLGETOBJECTPTRLABELPROC)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label); +typedef void (GLAD_API_PTR *PFNGLGETPOINTERVPROC)(GLenum pname, void ** params); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint * params); +typedef GLuint (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program, GLenum programInterface, const GLchar * name); +typedef GLint (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program, GLenum programInterface, const GLchar * name); +typedef GLint (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint program, GLenum programInterface, const GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei count, GLsizei * length, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype, GLenum pname, GLint * values); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAD_API_PTR *PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 * params); +typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 * params); +typedef void (GLAD_API_PTR *PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint * params); +typedef void (GLAD_API_PTR *PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint * params); +typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog); +typedef void (GLAD_API_PTR *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision); +typedef void (GLAD_API_PTR *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source); +typedef void (GLAD_API_PTR *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint * params); +typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name); +typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGIPROC)(GLenum name, GLuint index); +typedef GLuint (GLAD_API_PTR *PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype, const GLchar * name); +typedef GLint (GLAD_API_PTR *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program, GLenum shadertype, const GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count, GLsizei * length, GLint * values); +typedef void (GLAD_API_PTR *PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void * pixels); +typedef void (GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels); +typedef void (GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level, GLenum pname, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, GLuint * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void * pixels); +typedef void (GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint64 * param); +typedef void (GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint * param); +typedef void (GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint * param); +typedef GLuint (GLAD_API_PTR *PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar * uniformBlockName); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices); +typedef GLint (GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar * name); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location, GLuint * params); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint64 * param); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint * param); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint * param); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname, GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void ** pointer); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETNCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod, GLsizei bufSize, void * pixels); +typedef void (GLAD_API_PTR *PFNGLGETNTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels); +typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMDVPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMFVPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMUIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint * params); +typedef void (GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode); +typedef void (GLAD_API_PTR *PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (GLAD_API_PTR *PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum * attachments); +typedef void (GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments); +typedef void (GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLINVALIDATETEXIMAGEPROC)(GLuint texture, GLint level); +typedef void (GLAD_API_PTR *PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); +typedef GLboolean (GLAD_API_PTR *PFNGLISBUFFERPROC)(GLuint buffer); +typedef GLboolean (GLAD_API_PTR *PFNGLISENABLEDPROC)(GLenum cap); +typedef GLboolean (GLAD_API_PTR *PFNGLISENABLEDIPROC)(GLenum target, GLuint index); +typedef GLboolean (GLAD_API_PTR *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer); +typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program); +typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline); +typedef GLboolean (GLAD_API_PTR *PFNGLISQUERYPROC)(GLuint id); +typedef GLboolean (GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer); +typedef GLboolean (GLAD_API_PTR *PFNGLISSAMPLERPROC)(GLuint sampler); +typedef GLboolean (GLAD_API_PTR *PFNGLISSHADERPROC)(GLuint shader); +typedef GLboolean (GLAD_API_PTR *PFNGLISSYNCPROC)(GLsync sync); +typedef GLboolean (GLAD_API_PTR *PFNGLISTEXTUREPROC)(GLuint texture); +typedef GLboolean (GLAD_API_PTR *PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id); +typedef GLboolean (GLAD_API_PTR *PFNGLISVERTEXARRAYPROC)(GLuint array); +typedef void (GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width); +typedef void (GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program); +typedef void (GLAD_API_PTR *PFNGLLOGICOPPROC)(GLenum opcode); +typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERPROC)(GLenum target, GLenum access); +typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void * (GLAD_API_PTR *PFNGLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access); +typedef void * (GLAD_API_PTR *PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (GLAD_API_PTR *PFNGLMEMORYBARRIERPROC)(GLbitfield barriers); +typedef void (GLAD_API_PTR *PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers); +typedef void (GLAD_API_PTR *PFNGLMINSAMPLESHADINGPROC)(GLfloat value); +typedef void (GLAD_API_PTR *PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount); +typedef void (GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride); +typedef void (GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)(GLenum mode, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount); +typedef void (GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex); +typedef void (GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride); +typedef void (GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)(GLenum mode, GLenum type, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAD_API_PTR *PFNGLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage); +typedef void (GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags); +typedef void (GLAD_API_PTR *PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data); +typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf); +typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n, const GLenum * bufs); +typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname, GLint param); +typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src); +typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label); +typedef void (GLAD_API_PTR *PFNGLOBJECTPTRLABELPROC)(const void * ptr, GLsizei length, const GLchar * label); +typedef void (GLAD_API_PTR *PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat * values); +typedef void (GLAD_API_PTR *PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value); +typedef void (GLAD_API_PTR *PFNGLPAUSETRANSFORMFEEDBACKPROC)(void); +typedef void (GLAD_API_PTR *PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param); +typedef void (GLAD_API_PTR *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param); +typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param); +typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param); +typedef void (GLAD_API_PTR *PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint * params); +typedef void (GLAD_API_PTR *PFNGLPOINTSIZEPROC)(GLfloat size); +typedef void (GLAD_API_PTR *PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode); +typedef void (GLAD_API_PTR *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units); +typedef void (GLAD_API_PTR *PFNGLPOLYGONOFFSETCLAMPPROC)(GLfloat factor, GLfloat units, GLfloat clamp); +typedef void (GLAD_API_PTR *PFNGLPOPDEBUGGROUPPROC)(void); +typedef void (GLAD_API_PTR *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index); +typedef void (GLAD_API_PTR *PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length); +typedef void (GLAD_API_PTR *PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble v0); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0, GLint v1); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLPROVOKINGVERTEXPROC)(GLenum mode); +typedef void (GLAD_API_PTR *PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar * message); +typedef void (GLAD_API_PTR *PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target); +typedef void (GLAD_API_PTR *PFNGLREADBUFFERPROC)(GLenum src); +typedef void (GLAD_API_PTR *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels); +typedef void (GLAD_API_PTR *PFNGLREADNPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data); +typedef void (GLAD_API_PTR *PFNGLRELEASESHADERCOMPILERPROC)(void); +typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLRESUMETRANSFORMFEEDBACKPROC)(void); +typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert); +typedef void (GLAD_API_PTR *PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask); +typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint * param); +typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint * param); +typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param); +typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat * param); +typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param); +typedef void (GLAD_API_PTR *PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint * param); +typedef void (GLAD_API_PTR *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length); +typedef void (GLAD_API_PTR *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length); +typedef void (GLAD_API_PTR *PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); +typedef void (GLAD_API_PTR *PFNGLSPECIALIZESHADERPROC)(GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue); +typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask); +typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (GLAD_API_PTR *PFNGLSTENCILMASKPROC)(GLuint mask); +typedef void (GLAD_API_PTR *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask); +typedef void (GLAD_API_PTR *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass); +typedef void (GLAD_API_PTR *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (GLAD_API_PTR *PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLTEXBUFFERRANGEPROC)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAD_API_PTR *PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void (GLAD_API_PTR *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void (GLAD_API_PTR *PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (GLAD_API_PTR *PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels); +typedef void (GLAD_API_PTR *PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint * params); +typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint * params); +typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param); +typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); +typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params); +typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels); +typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels); +typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels); +typedef void (GLAD_API_PTR *PFNGLTEXTUREBARRIERPROC)(void); +typedef void (GLAD_API_PTR *PFNGLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat, GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, const GLint * params); +typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, const GLuint * params); +typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param); +typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, const GLfloat * param); +typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param); +typedef void (GLAD_API_PTR *PFNGLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, const GLint * param); +typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (GLAD_API_PTR *PFNGLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels); +typedef void (GLAD_API_PTR *PFNGLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels); +typedef void (GLAD_API_PTR *PFNGLTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels); +typedef void (GLAD_API_PTR *PFNGLTEXTUREVIEWPROC)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +typedef void (GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index, GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1DPROC)(GLint location, GLdouble x); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count, const GLuint * indices); +typedef GLboolean (GLAD_API_PTR *PFNGLUNMAPBUFFERPROC)(GLenum target); +typedef GLboolean (GLAD_API_PTR *PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program); +typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMPROC)(GLuint program); +typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline); +typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex, GLuint bindingindex); +typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex, GLuint divisor); +typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer); +typedef void (GLAD_API_PTR *PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor); +typedef void (GLAD_API_PTR *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); + +GLAD_API_CALL PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram; +#define glActiveShaderProgram glad_glActiveShaderProgram +GLAD_API_CALL PFNGLACTIVETEXTUREPROC glad_glActiveTexture; +#define glActiveTexture glad_glActiveTexture +GLAD_API_CALL PFNGLATTACHSHADERPROC glad_glAttachShader; +#define glAttachShader glad_glAttachShader +GLAD_API_CALL PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; +#define glBeginConditionalRender glad_glBeginConditionalRender +GLAD_API_CALL PFNGLBEGINQUERYPROC glad_glBeginQuery; +#define glBeginQuery glad_glBeginQuery +GLAD_API_CALL PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed; +#define glBeginQueryIndexed glad_glBeginQueryIndexed +GLAD_API_CALL PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; +#define glBeginTransformFeedback glad_glBeginTransformFeedback +GLAD_API_CALL PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; +#define glBindAttribLocation glad_glBindAttribLocation +GLAD_API_CALL PFNGLBINDBUFFERPROC glad_glBindBuffer; +#define glBindBuffer glad_glBindBuffer +GLAD_API_CALL PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; +#define glBindBufferBase glad_glBindBufferBase +GLAD_API_CALL PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; +#define glBindBufferRange glad_glBindBufferRange +GLAD_API_CALL PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase; +#define glBindBuffersBase glad_glBindBuffersBase +GLAD_API_CALL PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange; +#define glBindBuffersRange glad_glBindBuffersRange +GLAD_API_CALL PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; +#define glBindFragDataLocation glad_glBindFragDataLocation +GLAD_API_CALL PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; +#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed +GLAD_API_CALL PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; +#define glBindFramebuffer glad_glBindFramebuffer +GLAD_API_CALL PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture; +#define glBindImageTexture glad_glBindImageTexture +GLAD_API_CALL PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures; +#define glBindImageTextures glad_glBindImageTextures +GLAD_API_CALL PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline; +#define glBindProgramPipeline glad_glBindProgramPipeline +GLAD_API_CALL PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; +#define glBindRenderbuffer glad_glBindRenderbuffer +GLAD_API_CALL PFNGLBINDSAMPLERPROC glad_glBindSampler; +#define glBindSampler glad_glBindSampler +GLAD_API_CALL PFNGLBINDSAMPLERSPROC glad_glBindSamplers; +#define glBindSamplers glad_glBindSamplers +GLAD_API_CALL PFNGLBINDTEXTUREPROC glad_glBindTexture; +#define glBindTexture glad_glBindTexture +GLAD_API_CALL PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit; +#define glBindTextureUnit glad_glBindTextureUnit +GLAD_API_CALL PFNGLBINDTEXTURESPROC glad_glBindTextures; +#define glBindTextures glad_glBindTextures +GLAD_API_CALL PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback; +#define glBindTransformFeedback glad_glBindTransformFeedback +GLAD_API_CALL PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; +#define glBindVertexArray glad_glBindVertexArray +GLAD_API_CALL PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer; +#define glBindVertexBuffer glad_glBindVertexBuffer +GLAD_API_CALL PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers; +#define glBindVertexBuffers glad_glBindVertexBuffers +GLAD_API_CALL PFNGLBLENDCOLORPROC glad_glBlendColor; +#define glBlendColor glad_glBlendColor +GLAD_API_CALL PFNGLBLENDEQUATIONPROC glad_glBlendEquation; +#define glBlendEquation glad_glBlendEquation +GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; +#define glBlendEquationSeparate glad_glBlendEquationSeparate +GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei; +#define glBlendEquationSeparatei glad_glBlendEquationSeparatei +GLAD_API_CALL PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi; +#define glBlendEquationi glad_glBlendEquationi +GLAD_API_CALL PFNGLBLENDFUNCPROC glad_glBlendFunc; +#define glBlendFunc glad_glBlendFunc +GLAD_API_CALL PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; +#define glBlendFuncSeparate glad_glBlendFuncSeparate +GLAD_API_CALL PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei; +#define glBlendFuncSeparatei glad_glBlendFuncSeparatei +GLAD_API_CALL PFNGLBLENDFUNCIPROC glad_glBlendFunci; +#define glBlendFunci glad_glBlendFunci +GLAD_API_CALL PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; +#define glBlitFramebuffer glad_glBlitFramebuffer +GLAD_API_CALL PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer; +#define glBlitNamedFramebuffer glad_glBlitNamedFramebuffer +GLAD_API_CALL PFNGLBUFFERDATAPROC glad_glBufferData; +#define glBufferData glad_glBufferData +GLAD_API_CALL PFNGLBUFFERSTORAGEPROC glad_glBufferStorage; +#define glBufferStorage glad_glBufferStorage +GLAD_API_CALL PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; +#define glBufferSubData glad_glBufferSubData +GLAD_API_CALL PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; +#define glCheckFramebufferStatus glad_glCheckFramebufferStatus +GLAD_API_CALL PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus; +#define glCheckNamedFramebufferStatus glad_glCheckNamedFramebufferStatus +GLAD_API_CALL PFNGLCLAMPCOLORPROC glad_glClampColor; +#define glClampColor glad_glClampColor +GLAD_API_CALL PFNGLCLEARPROC glad_glClear; +#define glClear glad_glClear +GLAD_API_CALL PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData; +#define glClearBufferData glad_glClearBufferData +GLAD_API_CALL PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData; +#define glClearBufferSubData glad_glClearBufferSubData +GLAD_API_CALL PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; +#define glClearBufferfi glad_glClearBufferfi +GLAD_API_CALL PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; +#define glClearBufferfv glad_glClearBufferfv +GLAD_API_CALL PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; +#define glClearBufferiv glad_glClearBufferiv +GLAD_API_CALL PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; +#define glClearBufferuiv glad_glClearBufferuiv +GLAD_API_CALL PFNGLCLEARCOLORPROC glad_glClearColor; +#define glClearColor glad_glClearColor +GLAD_API_CALL PFNGLCLEARDEPTHPROC glad_glClearDepth; +#define glClearDepth glad_glClearDepth +GLAD_API_CALL PFNGLCLEARDEPTHFPROC glad_glClearDepthf; +#define glClearDepthf glad_glClearDepthf +GLAD_API_CALL PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData; +#define glClearNamedBufferData glad_glClearNamedBufferData +GLAD_API_CALL PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData; +#define glClearNamedBufferSubData glad_glClearNamedBufferSubData +GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi; +#define glClearNamedFramebufferfi glad_glClearNamedFramebufferfi +GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv; +#define glClearNamedFramebufferfv glad_glClearNamedFramebufferfv +GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv; +#define glClearNamedFramebufferiv glad_glClearNamedFramebufferiv +GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv; +#define glClearNamedFramebufferuiv glad_glClearNamedFramebufferuiv +GLAD_API_CALL PFNGLCLEARSTENCILPROC glad_glClearStencil; +#define glClearStencil glad_glClearStencil +GLAD_API_CALL PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage; +#define glClearTexImage glad_glClearTexImage +GLAD_API_CALL PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage; +#define glClearTexSubImage glad_glClearTexSubImage +GLAD_API_CALL PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; +#define glClientWaitSync glad_glClientWaitSync +GLAD_API_CALL PFNGLCLIPCONTROLPROC glad_glClipControl; +#define glClipControl glad_glClipControl +GLAD_API_CALL PFNGLCOLORMASKPROC glad_glColorMask; +#define glColorMask glad_glColorMask +GLAD_API_CALL PFNGLCOLORMASKIPROC glad_glColorMaski; +#define glColorMaski glad_glColorMaski +GLAD_API_CALL PFNGLCOMPILESHADERPROC glad_glCompileShader; +#define glCompileShader glad_glCompileShader +GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; +#define glCompressedTexImage1D glad_glCompressedTexImage1D +GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; +#define glCompressedTexImage2D glad_glCompressedTexImage2D +GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; +#define glCompressedTexImage3D glad_glCompressedTexImage3D +GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; +#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D +GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; +#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D +GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; +#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D +GLAD_API_CALL PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D; +#define glCompressedTextureSubImage1D glad_glCompressedTextureSubImage1D +GLAD_API_CALL PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D; +#define glCompressedTextureSubImage2D glad_glCompressedTextureSubImage2D +GLAD_API_CALL PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D; +#define glCompressedTextureSubImage3D glad_glCompressedTextureSubImage3D +GLAD_API_CALL PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; +#define glCopyBufferSubData glad_glCopyBufferSubData +GLAD_API_CALL PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData; +#define glCopyImageSubData glad_glCopyImageSubData +GLAD_API_CALL PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData; +#define glCopyNamedBufferSubData glad_glCopyNamedBufferSubData +GLAD_API_CALL PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; +#define glCopyTexImage1D glad_glCopyTexImage1D +GLAD_API_CALL PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; +#define glCopyTexImage2D glad_glCopyTexImage2D +GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; +#define glCopyTexSubImage1D glad_glCopyTexSubImage1D +GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; +#define glCopyTexSubImage2D glad_glCopyTexSubImage2D +GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; +#define glCopyTexSubImage3D glad_glCopyTexSubImage3D +GLAD_API_CALL PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D; +#define glCopyTextureSubImage1D glad_glCopyTextureSubImage1D +GLAD_API_CALL PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D; +#define glCopyTextureSubImage2D glad_glCopyTextureSubImage2D +GLAD_API_CALL PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D; +#define glCopyTextureSubImage3D glad_glCopyTextureSubImage3D +GLAD_API_CALL PFNGLCREATEBUFFERSPROC glad_glCreateBuffers; +#define glCreateBuffers glad_glCreateBuffers +GLAD_API_CALL PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers; +#define glCreateFramebuffers glad_glCreateFramebuffers +GLAD_API_CALL PFNGLCREATEPROGRAMPROC glad_glCreateProgram; +#define glCreateProgram glad_glCreateProgram +GLAD_API_CALL PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines; +#define glCreateProgramPipelines glad_glCreateProgramPipelines +GLAD_API_CALL PFNGLCREATEQUERIESPROC glad_glCreateQueries; +#define glCreateQueries glad_glCreateQueries +GLAD_API_CALL PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers; +#define glCreateRenderbuffers glad_glCreateRenderbuffers +GLAD_API_CALL PFNGLCREATESAMPLERSPROC glad_glCreateSamplers; +#define glCreateSamplers glad_glCreateSamplers +GLAD_API_CALL PFNGLCREATESHADERPROC glad_glCreateShader; +#define glCreateShader glad_glCreateShader +GLAD_API_CALL PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv; +#define glCreateShaderProgramv glad_glCreateShaderProgramv +GLAD_API_CALL PFNGLCREATETEXTURESPROC glad_glCreateTextures; +#define glCreateTextures glad_glCreateTextures +GLAD_API_CALL PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks; +#define glCreateTransformFeedbacks glad_glCreateTransformFeedbacks +GLAD_API_CALL PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays; +#define glCreateVertexArrays glad_glCreateVertexArrays +GLAD_API_CALL PFNGLCULLFACEPROC glad_glCullFace; +#define glCullFace glad_glCullFace +GLAD_API_CALL PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback; +#define glDebugMessageCallback glad_glDebugMessageCallback +GLAD_API_CALL PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl; +#define glDebugMessageControl glad_glDebugMessageControl +GLAD_API_CALL PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert; +#define glDebugMessageInsert glad_glDebugMessageInsert +GLAD_API_CALL PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; +#define glDeleteBuffers glad_glDeleteBuffers +GLAD_API_CALL PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; +#define glDeleteFramebuffers glad_glDeleteFramebuffers +GLAD_API_CALL PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; +#define glDeleteProgram glad_glDeleteProgram +GLAD_API_CALL PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines; +#define glDeleteProgramPipelines glad_glDeleteProgramPipelines +GLAD_API_CALL PFNGLDELETEQUERIESPROC glad_glDeleteQueries; +#define glDeleteQueries glad_glDeleteQueries +GLAD_API_CALL PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; +#define glDeleteRenderbuffers glad_glDeleteRenderbuffers +GLAD_API_CALL PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; +#define glDeleteSamplers glad_glDeleteSamplers +GLAD_API_CALL PFNGLDELETESHADERPROC glad_glDeleteShader; +#define glDeleteShader glad_glDeleteShader +GLAD_API_CALL PFNGLDELETESYNCPROC glad_glDeleteSync; +#define glDeleteSync glad_glDeleteSync +GLAD_API_CALL PFNGLDELETETEXTURESPROC glad_glDeleteTextures; +#define glDeleteTextures glad_glDeleteTextures +GLAD_API_CALL PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks; +#define glDeleteTransformFeedbacks glad_glDeleteTransformFeedbacks +GLAD_API_CALL PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; +#define glDeleteVertexArrays glad_glDeleteVertexArrays +GLAD_API_CALL PFNGLDEPTHFUNCPROC glad_glDepthFunc; +#define glDepthFunc glad_glDepthFunc +GLAD_API_CALL PFNGLDEPTHMASKPROC glad_glDepthMask; +#define glDepthMask glad_glDepthMask +GLAD_API_CALL PFNGLDEPTHRANGEPROC glad_glDepthRange; +#define glDepthRange glad_glDepthRange +GLAD_API_CALL PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv; +#define glDepthRangeArrayv glad_glDepthRangeArrayv +GLAD_API_CALL PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed; +#define glDepthRangeIndexed glad_glDepthRangeIndexed +GLAD_API_CALL PFNGLDEPTHRANGEFPROC glad_glDepthRangef; +#define glDepthRangef glad_glDepthRangef +GLAD_API_CALL PFNGLDETACHSHADERPROC glad_glDetachShader; +#define glDetachShader glad_glDetachShader +GLAD_API_CALL PFNGLDISABLEPROC glad_glDisable; +#define glDisable glad_glDisable +GLAD_API_CALL PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib; +#define glDisableVertexArrayAttrib glad_glDisableVertexArrayAttrib +GLAD_API_CALL PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; +#define glDisableVertexAttribArray glad_glDisableVertexAttribArray +GLAD_API_CALL PFNGLDISABLEIPROC glad_glDisablei; +#define glDisablei glad_glDisablei +GLAD_API_CALL PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute; +#define glDispatchCompute glad_glDispatchCompute +GLAD_API_CALL PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect; +#define glDispatchComputeIndirect glad_glDispatchComputeIndirect +GLAD_API_CALL PFNGLDRAWARRAYSPROC glad_glDrawArrays; +#define glDrawArrays glad_glDrawArrays +GLAD_API_CALL PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect; +#define glDrawArraysIndirect glad_glDrawArraysIndirect +GLAD_API_CALL PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; +#define glDrawArraysInstanced glad_glDrawArraysInstanced +GLAD_API_CALL PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance; +#define glDrawArraysInstancedBaseInstance glad_glDrawArraysInstancedBaseInstance +GLAD_API_CALL PFNGLDRAWBUFFERPROC glad_glDrawBuffer; +#define glDrawBuffer glad_glDrawBuffer +GLAD_API_CALL PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; +#define glDrawBuffers glad_glDrawBuffers +GLAD_API_CALL PFNGLDRAWELEMENTSPROC glad_glDrawElements; +#define glDrawElements glad_glDrawElements +GLAD_API_CALL PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; +#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex +GLAD_API_CALL PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect; +#define glDrawElementsIndirect glad_glDrawElementsIndirect +GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; +#define glDrawElementsInstanced glad_glDrawElementsInstanced +GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance; +#define glDrawElementsInstancedBaseInstance glad_glDrawElementsInstancedBaseInstance +GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; +#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex +GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance; +#define glDrawElementsInstancedBaseVertexBaseInstance glad_glDrawElementsInstancedBaseVertexBaseInstance +GLAD_API_CALL PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; +#define glDrawRangeElements glad_glDrawRangeElements +GLAD_API_CALL PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; +#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex +GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback; +#define glDrawTransformFeedback glad_glDrawTransformFeedback +GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced; +#define glDrawTransformFeedbackInstanced glad_glDrawTransformFeedbackInstanced +GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream; +#define glDrawTransformFeedbackStream glad_glDrawTransformFeedbackStream +GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced; +#define glDrawTransformFeedbackStreamInstanced glad_glDrawTransformFeedbackStreamInstanced +GLAD_API_CALL PFNGLENABLEPROC glad_glEnable; +#define glEnable glad_glEnable +GLAD_API_CALL PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib; +#define glEnableVertexArrayAttrib glad_glEnableVertexArrayAttrib +GLAD_API_CALL PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; +#define glEnableVertexAttribArray glad_glEnableVertexAttribArray +GLAD_API_CALL PFNGLENABLEIPROC glad_glEnablei; +#define glEnablei glad_glEnablei +GLAD_API_CALL PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; +#define glEndConditionalRender glad_glEndConditionalRender +GLAD_API_CALL PFNGLENDQUERYPROC glad_glEndQuery; +#define glEndQuery glad_glEndQuery +GLAD_API_CALL PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed; +#define glEndQueryIndexed glad_glEndQueryIndexed +GLAD_API_CALL PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; +#define glEndTransformFeedback glad_glEndTransformFeedback +GLAD_API_CALL PFNGLFENCESYNCPROC glad_glFenceSync; +#define glFenceSync glad_glFenceSync +GLAD_API_CALL PFNGLFINISHPROC glad_glFinish; +#define glFinish glad_glFinish +GLAD_API_CALL PFNGLFLUSHPROC glad_glFlush; +#define glFlush glad_glFlush +GLAD_API_CALL PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; +#define glFlushMappedBufferRange glad_glFlushMappedBufferRange +GLAD_API_CALL PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange; +#define glFlushMappedNamedBufferRange glad_glFlushMappedNamedBufferRange +GLAD_API_CALL PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri; +#define glFramebufferParameteri glad_glFramebufferParameteri +GLAD_API_CALL PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; +#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; +#define glFramebufferTexture glad_glFramebufferTexture +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; +#define glFramebufferTexture1D glad_glFramebufferTexture1D +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; +#define glFramebufferTexture2D glad_glFramebufferTexture2D +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; +#define glFramebufferTexture3D glad_glFramebufferTexture3D +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; +#define glFramebufferTextureLayer glad_glFramebufferTextureLayer +GLAD_API_CALL PFNGLFRONTFACEPROC glad_glFrontFace; +#define glFrontFace glad_glFrontFace +GLAD_API_CALL PFNGLGENBUFFERSPROC glad_glGenBuffers; +#define glGenBuffers glad_glGenBuffers +GLAD_API_CALL PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; +#define glGenFramebuffers glad_glGenFramebuffers +GLAD_API_CALL PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines; +#define glGenProgramPipelines glad_glGenProgramPipelines +GLAD_API_CALL PFNGLGENQUERIESPROC glad_glGenQueries; +#define glGenQueries glad_glGenQueries +GLAD_API_CALL PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; +#define glGenRenderbuffers glad_glGenRenderbuffers +GLAD_API_CALL PFNGLGENSAMPLERSPROC glad_glGenSamplers; +#define glGenSamplers glad_glGenSamplers +GLAD_API_CALL PFNGLGENTEXTURESPROC glad_glGenTextures; +#define glGenTextures glad_glGenTextures +GLAD_API_CALL PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks; +#define glGenTransformFeedbacks glad_glGenTransformFeedbacks +GLAD_API_CALL PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; +#define glGenVertexArrays glad_glGenVertexArrays +GLAD_API_CALL PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; +#define glGenerateMipmap glad_glGenerateMipmap +GLAD_API_CALL PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap; +#define glGenerateTextureMipmap glad_glGenerateTextureMipmap +GLAD_API_CALL PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv; +#define glGetActiveAtomicCounterBufferiv glad_glGetActiveAtomicCounterBufferiv +GLAD_API_CALL PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; +#define glGetActiveAttrib glad_glGetActiveAttrib +GLAD_API_CALL PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName; +#define glGetActiveSubroutineName glad_glGetActiveSubroutineName +GLAD_API_CALL PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName; +#define glGetActiveSubroutineUniformName glad_glGetActiveSubroutineUniformName +GLAD_API_CALL PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv; +#define glGetActiveSubroutineUniformiv glad_glGetActiveSubroutineUniformiv +GLAD_API_CALL PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; +#define glGetActiveUniform glad_glGetActiveUniform +GLAD_API_CALL PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; +#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName +GLAD_API_CALL PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; +#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv +GLAD_API_CALL PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; +#define glGetActiveUniformName glad_glGetActiveUniformName +GLAD_API_CALL PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; +#define glGetActiveUniformsiv glad_glGetActiveUniformsiv +GLAD_API_CALL PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; +#define glGetAttachedShaders glad_glGetAttachedShaders +GLAD_API_CALL PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; +#define glGetAttribLocation glad_glGetAttribLocation +GLAD_API_CALL PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; +#define glGetBooleani_v glad_glGetBooleani_v +GLAD_API_CALL PFNGLGETBOOLEANVPROC glad_glGetBooleanv; +#define glGetBooleanv glad_glGetBooleanv +GLAD_API_CALL PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; +#define glGetBufferParameteri64v glad_glGetBufferParameteri64v +GLAD_API_CALL PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; +#define glGetBufferParameteriv glad_glGetBufferParameteriv +GLAD_API_CALL PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; +#define glGetBufferPointerv glad_glGetBufferPointerv +GLAD_API_CALL PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; +#define glGetBufferSubData glad_glGetBufferSubData +GLAD_API_CALL PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; +#define glGetCompressedTexImage glad_glGetCompressedTexImage +GLAD_API_CALL PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage; +#define glGetCompressedTextureImage glad_glGetCompressedTextureImage +GLAD_API_CALL PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage; +#define glGetCompressedTextureSubImage glad_glGetCompressedTextureSubImage +GLAD_API_CALL PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog; +#define glGetDebugMessageLog glad_glGetDebugMessageLog +GLAD_API_CALL PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v; +#define glGetDoublei_v glad_glGetDoublei_v +GLAD_API_CALL PFNGLGETDOUBLEVPROC glad_glGetDoublev; +#define glGetDoublev glad_glGetDoublev +GLAD_API_CALL PFNGLGETERRORPROC glad_glGetError; +#define glGetError glad_glGetError +GLAD_API_CALL PFNGLGETFLOATI_VPROC glad_glGetFloati_v; +#define glGetFloati_v glad_glGetFloati_v +GLAD_API_CALL PFNGLGETFLOATVPROC glad_glGetFloatv; +#define glGetFloatv glad_glGetFloatv +GLAD_API_CALL PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; +#define glGetFragDataIndex glad_glGetFragDataIndex +GLAD_API_CALL PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; +#define glGetFragDataLocation glad_glGetFragDataLocation +GLAD_API_CALL PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; +#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv +GLAD_API_CALL PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv; +#define glGetFramebufferParameteriv glad_glGetFramebufferParameteriv +GLAD_API_CALL PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus; +#define glGetGraphicsResetStatus glad_glGetGraphicsResetStatus +GLAD_API_CALL PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; +#define glGetInteger64i_v glad_glGetInteger64i_v +GLAD_API_CALL PFNGLGETINTEGER64VPROC glad_glGetInteger64v; +#define glGetInteger64v glad_glGetInteger64v +GLAD_API_CALL PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; +#define glGetIntegeri_v glad_glGetIntegeri_v +GLAD_API_CALL PFNGLGETINTEGERVPROC glad_glGetIntegerv; +#define glGetIntegerv glad_glGetIntegerv +GLAD_API_CALL PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v; +#define glGetInternalformati64v glad_glGetInternalformati64v +GLAD_API_CALL PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ; +#define glGetInternalformativ glad_glGetInternalformativ +GLAD_API_CALL PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; +#define glGetMultisamplefv glad_glGetMultisamplefv +GLAD_API_CALL PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v; +#define glGetNamedBufferParameteri64v glad_glGetNamedBufferParameteri64v +GLAD_API_CALL PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv; +#define glGetNamedBufferParameteriv glad_glGetNamedBufferParameteriv +GLAD_API_CALL PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv; +#define glGetNamedBufferPointerv glad_glGetNamedBufferPointerv +GLAD_API_CALL PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData; +#define glGetNamedBufferSubData glad_glGetNamedBufferSubData +GLAD_API_CALL PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv; +#define glGetNamedFramebufferAttachmentParameteriv glad_glGetNamedFramebufferAttachmentParameteriv +GLAD_API_CALL PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv; +#define glGetNamedFramebufferParameteriv glad_glGetNamedFramebufferParameteriv +GLAD_API_CALL PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv; +#define glGetNamedRenderbufferParameteriv glad_glGetNamedRenderbufferParameteriv +GLAD_API_CALL PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel; +#define glGetObjectLabel glad_glGetObjectLabel +GLAD_API_CALL PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel; +#define glGetObjectPtrLabel glad_glGetObjectPtrLabel +GLAD_API_CALL PFNGLGETPOINTERVPROC glad_glGetPointerv; +#define glGetPointerv glad_glGetPointerv +GLAD_API_CALL PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary; +#define glGetProgramBinary glad_glGetProgramBinary +GLAD_API_CALL PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; +#define glGetProgramInfoLog glad_glGetProgramInfoLog +GLAD_API_CALL PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv; +#define glGetProgramInterfaceiv glad_glGetProgramInterfaceiv +GLAD_API_CALL PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog; +#define glGetProgramPipelineInfoLog glad_glGetProgramPipelineInfoLog +GLAD_API_CALL PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv; +#define glGetProgramPipelineiv glad_glGetProgramPipelineiv +GLAD_API_CALL PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex; +#define glGetProgramResourceIndex glad_glGetProgramResourceIndex +GLAD_API_CALL PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation; +#define glGetProgramResourceLocation glad_glGetProgramResourceLocation +GLAD_API_CALL PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex; +#define glGetProgramResourceLocationIndex glad_glGetProgramResourceLocationIndex +GLAD_API_CALL PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName; +#define glGetProgramResourceName glad_glGetProgramResourceName +GLAD_API_CALL PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv; +#define glGetProgramResourceiv glad_glGetProgramResourceiv +GLAD_API_CALL PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv; +#define glGetProgramStageiv glad_glGetProgramStageiv +GLAD_API_CALL PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; +#define glGetProgramiv glad_glGetProgramiv +GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v; +#define glGetQueryBufferObjecti64v glad_glGetQueryBufferObjecti64v +GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv; +#define glGetQueryBufferObjectiv glad_glGetQueryBufferObjectiv +GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v; +#define glGetQueryBufferObjectui64v glad_glGetQueryBufferObjectui64v +GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv; +#define glGetQueryBufferObjectuiv glad_glGetQueryBufferObjectuiv +GLAD_API_CALL PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv; +#define glGetQueryIndexediv glad_glGetQueryIndexediv +GLAD_API_CALL PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; +#define glGetQueryObjecti64v glad_glGetQueryObjecti64v +GLAD_API_CALL PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; +#define glGetQueryObjectiv glad_glGetQueryObjectiv +GLAD_API_CALL PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; +#define glGetQueryObjectui64v glad_glGetQueryObjectui64v +GLAD_API_CALL PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; +#define glGetQueryObjectuiv glad_glGetQueryObjectuiv +GLAD_API_CALL PFNGLGETQUERYIVPROC glad_glGetQueryiv; +#define glGetQueryiv glad_glGetQueryiv +GLAD_API_CALL PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; +#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv +GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; +#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv +GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; +#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv +GLAD_API_CALL PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; +#define glGetSamplerParameterfv glad_glGetSamplerParameterfv +GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; +#define glGetSamplerParameteriv glad_glGetSamplerParameteriv +GLAD_API_CALL PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; +#define glGetShaderInfoLog glad_glGetShaderInfoLog +GLAD_API_CALL PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat; +#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat +GLAD_API_CALL PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; +#define glGetShaderSource glad_glGetShaderSource +GLAD_API_CALL PFNGLGETSHADERIVPROC glad_glGetShaderiv; +#define glGetShaderiv glad_glGetShaderiv +GLAD_API_CALL PFNGLGETSTRINGPROC glad_glGetString; +#define glGetString glad_glGetString +GLAD_API_CALL PFNGLGETSTRINGIPROC glad_glGetStringi; +#define glGetStringi glad_glGetStringi +GLAD_API_CALL PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex; +#define glGetSubroutineIndex glad_glGetSubroutineIndex +GLAD_API_CALL PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation; +#define glGetSubroutineUniformLocation glad_glGetSubroutineUniformLocation +GLAD_API_CALL PFNGLGETSYNCIVPROC glad_glGetSynciv; +#define glGetSynciv glad_glGetSynciv +GLAD_API_CALL PFNGLGETTEXIMAGEPROC glad_glGetTexImage; +#define glGetTexImage glad_glGetTexImage +GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; +#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv +GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; +#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv +GLAD_API_CALL PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; +#define glGetTexParameterIiv glad_glGetTexParameterIiv +GLAD_API_CALL PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; +#define glGetTexParameterIuiv glad_glGetTexParameterIuiv +GLAD_API_CALL PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; +#define glGetTexParameterfv glad_glGetTexParameterfv +GLAD_API_CALL PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; +#define glGetTexParameteriv glad_glGetTexParameteriv +GLAD_API_CALL PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage; +#define glGetTextureImage glad_glGetTextureImage +GLAD_API_CALL PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv; +#define glGetTextureLevelParameterfv glad_glGetTextureLevelParameterfv +GLAD_API_CALL PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv; +#define glGetTextureLevelParameteriv glad_glGetTextureLevelParameteriv +GLAD_API_CALL PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv; +#define glGetTextureParameterIiv glad_glGetTextureParameterIiv +GLAD_API_CALL PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv; +#define glGetTextureParameterIuiv glad_glGetTextureParameterIuiv +GLAD_API_CALL PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv; +#define glGetTextureParameterfv glad_glGetTextureParameterfv +GLAD_API_CALL PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv; +#define glGetTextureParameteriv glad_glGetTextureParameteriv +GLAD_API_CALL PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage; +#define glGetTextureSubImage glad_glGetTextureSubImage +GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; +#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying +GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v; +#define glGetTransformFeedbacki64_v glad_glGetTransformFeedbacki64_v +GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v; +#define glGetTransformFeedbacki_v glad_glGetTransformFeedbacki_v +GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv; +#define glGetTransformFeedbackiv glad_glGetTransformFeedbackiv +GLAD_API_CALL PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; +#define glGetUniformBlockIndex glad_glGetUniformBlockIndex +GLAD_API_CALL PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; +#define glGetUniformIndices glad_glGetUniformIndices +GLAD_API_CALL PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; +#define glGetUniformLocation glad_glGetUniformLocation +GLAD_API_CALL PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv; +#define glGetUniformSubroutineuiv glad_glGetUniformSubroutineuiv +GLAD_API_CALL PFNGLGETUNIFORMDVPROC glad_glGetUniformdv; +#define glGetUniformdv glad_glGetUniformdv +GLAD_API_CALL PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; +#define glGetUniformfv glad_glGetUniformfv +GLAD_API_CALL PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; +#define glGetUniformiv glad_glGetUniformiv +GLAD_API_CALL PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; +#define glGetUniformuiv glad_glGetUniformuiv +GLAD_API_CALL PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv; +#define glGetVertexArrayIndexed64iv glad_glGetVertexArrayIndexed64iv +GLAD_API_CALL PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv; +#define glGetVertexArrayIndexediv glad_glGetVertexArrayIndexediv +GLAD_API_CALL PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv; +#define glGetVertexArrayiv glad_glGetVertexArrayiv +GLAD_API_CALL PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; +#define glGetVertexAttribIiv glad_glGetVertexAttribIiv +GLAD_API_CALL PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; +#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv +GLAD_API_CALL PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv; +#define glGetVertexAttribLdv glad_glGetVertexAttribLdv +GLAD_API_CALL PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; +#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv +GLAD_API_CALL PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; +#define glGetVertexAttribdv glad_glGetVertexAttribdv +GLAD_API_CALL PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; +#define glGetVertexAttribfv glad_glGetVertexAttribfv +GLAD_API_CALL PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; +#define glGetVertexAttribiv glad_glGetVertexAttribiv +GLAD_API_CALL PFNGLGETNCOMPRESSEDTEXIMAGEPROC glad_glGetnCompressedTexImage; +#define glGetnCompressedTexImage glad_glGetnCompressedTexImage +GLAD_API_CALL PFNGLGETNTEXIMAGEPROC glad_glGetnTexImage; +#define glGetnTexImage glad_glGetnTexImage +GLAD_API_CALL PFNGLGETNUNIFORMDVPROC glad_glGetnUniformdv; +#define glGetnUniformdv glad_glGetnUniformdv +GLAD_API_CALL PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv; +#define glGetnUniformfv glad_glGetnUniformfv +GLAD_API_CALL PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv; +#define glGetnUniformiv glad_glGetnUniformiv +GLAD_API_CALL PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv; +#define glGetnUniformuiv glad_glGetnUniformuiv +GLAD_API_CALL PFNGLHINTPROC glad_glHint; +#define glHint glad_glHint +GLAD_API_CALL PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData; +#define glInvalidateBufferData glad_glInvalidateBufferData +GLAD_API_CALL PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData; +#define glInvalidateBufferSubData glad_glInvalidateBufferSubData +GLAD_API_CALL PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer; +#define glInvalidateFramebuffer glad_glInvalidateFramebuffer +GLAD_API_CALL PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData; +#define glInvalidateNamedFramebufferData glad_glInvalidateNamedFramebufferData +GLAD_API_CALL PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData; +#define glInvalidateNamedFramebufferSubData glad_glInvalidateNamedFramebufferSubData +GLAD_API_CALL PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer; +#define glInvalidateSubFramebuffer glad_glInvalidateSubFramebuffer +GLAD_API_CALL PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage; +#define glInvalidateTexImage glad_glInvalidateTexImage +GLAD_API_CALL PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage; +#define glInvalidateTexSubImage glad_glInvalidateTexSubImage +GLAD_API_CALL PFNGLISBUFFERPROC glad_glIsBuffer; +#define glIsBuffer glad_glIsBuffer +GLAD_API_CALL PFNGLISENABLEDPROC glad_glIsEnabled; +#define glIsEnabled glad_glIsEnabled +GLAD_API_CALL PFNGLISENABLEDIPROC glad_glIsEnabledi; +#define glIsEnabledi glad_glIsEnabledi +GLAD_API_CALL PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; +#define glIsFramebuffer glad_glIsFramebuffer +GLAD_API_CALL PFNGLISPROGRAMPROC glad_glIsProgram; +#define glIsProgram glad_glIsProgram +GLAD_API_CALL PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline; +#define glIsProgramPipeline glad_glIsProgramPipeline +GLAD_API_CALL PFNGLISQUERYPROC glad_glIsQuery; +#define glIsQuery glad_glIsQuery +GLAD_API_CALL PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; +#define glIsRenderbuffer glad_glIsRenderbuffer +GLAD_API_CALL PFNGLISSAMPLERPROC glad_glIsSampler; +#define glIsSampler glad_glIsSampler +GLAD_API_CALL PFNGLISSHADERPROC glad_glIsShader; +#define glIsShader glad_glIsShader +GLAD_API_CALL PFNGLISSYNCPROC glad_glIsSync; +#define glIsSync glad_glIsSync +GLAD_API_CALL PFNGLISTEXTUREPROC glad_glIsTexture; +#define glIsTexture glad_glIsTexture +GLAD_API_CALL PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback; +#define glIsTransformFeedback glad_glIsTransformFeedback +GLAD_API_CALL PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; +#define glIsVertexArray glad_glIsVertexArray +GLAD_API_CALL PFNGLLINEWIDTHPROC glad_glLineWidth; +#define glLineWidth glad_glLineWidth +GLAD_API_CALL PFNGLLINKPROGRAMPROC glad_glLinkProgram; +#define glLinkProgram glad_glLinkProgram +GLAD_API_CALL PFNGLLOGICOPPROC glad_glLogicOp; +#define glLogicOp glad_glLogicOp +GLAD_API_CALL PFNGLMAPBUFFERPROC glad_glMapBuffer; +#define glMapBuffer glad_glMapBuffer +GLAD_API_CALL PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; +#define glMapBufferRange glad_glMapBufferRange +GLAD_API_CALL PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer; +#define glMapNamedBuffer glad_glMapNamedBuffer +GLAD_API_CALL PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange; +#define glMapNamedBufferRange glad_glMapNamedBufferRange +GLAD_API_CALL PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier; +#define glMemoryBarrier glad_glMemoryBarrier +GLAD_API_CALL PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion; +#define glMemoryBarrierByRegion glad_glMemoryBarrierByRegion +GLAD_API_CALL PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading; +#define glMinSampleShading glad_glMinSampleShading +GLAD_API_CALL PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; +#define glMultiDrawArrays glad_glMultiDrawArrays +GLAD_API_CALL PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect; +#define glMultiDrawArraysIndirect glad_glMultiDrawArraysIndirect +GLAD_API_CALL PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glad_glMultiDrawArraysIndirectCount; +#define glMultiDrawArraysIndirectCount glad_glMultiDrawArraysIndirectCount +GLAD_API_CALL PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; +#define glMultiDrawElements glad_glMultiDrawElements +GLAD_API_CALL PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; +#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex +GLAD_API_CALL PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect; +#define glMultiDrawElementsIndirect glad_glMultiDrawElementsIndirect +GLAD_API_CALL PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glad_glMultiDrawElementsIndirectCount; +#define glMultiDrawElementsIndirectCount glad_glMultiDrawElementsIndirectCount +GLAD_API_CALL PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData; +#define glNamedBufferData glad_glNamedBufferData +GLAD_API_CALL PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage; +#define glNamedBufferStorage glad_glNamedBufferStorage +GLAD_API_CALL PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData; +#define glNamedBufferSubData glad_glNamedBufferSubData +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer; +#define glNamedFramebufferDrawBuffer glad_glNamedFramebufferDrawBuffer +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers; +#define glNamedFramebufferDrawBuffers glad_glNamedFramebufferDrawBuffers +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri; +#define glNamedFramebufferParameteri glad_glNamedFramebufferParameteri +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer; +#define glNamedFramebufferReadBuffer glad_glNamedFramebufferReadBuffer +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer; +#define glNamedFramebufferRenderbuffer glad_glNamedFramebufferRenderbuffer +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture; +#define glNamedFramebufferTexture glad_glNamedFramebufferTexture +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer; +#define glNamedFramebufferTextureLayer glad_glNamedFramebufferTextureLayer +GLAD_API_CALL PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage; +#define glNamedRenderbufferStorage glad_glNamedRenderbufferStorage +GLAD_API_CALL PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample; +#define glNamedRenderbufferStorageMultisample glad_glNamedRenderbufferStorageMultisample +GLAD_API_CALL PFNGLOBJECTLABELPROC glad_glObjectLabel; +#define glObjectLabel glad_glObjectLabel +GLAD_API_CALL PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel; +#define glObjectPtrLabel glad_glObjectPtrLabel +GLAD_API_CALL PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv; +#define glPatchParameterfv glad_glPatchParameterfv +GLAD_API_CALL PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri; +#define glPatchParameteri glad_glPatchParameteri +GLAD_API_CALL PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback; +#define glPauseTransformFeedback glad_glPauseTransformFeedback +GLAD_API_CALL PFNGLPIXELSTOREFPROC glad_glPixelStoref; +#define glPixelStoref glad_glPixelStoref +GLAD_API_CALL PFNGLPIXELSTOREIPROC glad_glPixelStorei; +#define glPixelStorei glad_glPixelStorei +GLAD_API_CALL PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; +#define glPointParameterf glad_glPointParameterf +GLAD_API_CALL PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; +#define glPointParameterfv glad_glPointParameterfv +GLAD_API_CALL PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; +#define glPointParameteri glad_glPointParameteri +GLAD_API_CALL PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; +#define glPointParameteriv glad_glPointParameteriv +GLAD_API_CALL PFNGLPOINTSIZEPROC glad_glPointSize; +#define glPointSize glad_glPointSize +GLAD_API_CALL PFNGLPOLYGONMODEPROC glad_glPolygonMode; +#define glPolygonMode glad_glPolygonMode +GLAD_API_CALL PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; +#define glPolygonOffset glad_glPolygonOffset +GLAD_API_CALL PFNGLPOLYGONOFFSETCLAMPPROC glad_glPolygonOffsetClamp; +#define glPolygonOffsetClamp glad_glPolygonOffsetClamp +GLAD_API_CALL PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup; +#define glPopDebugGroup glad_glPopDebugGroup +GLAD_API_CALL PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; +#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex +GLAD_API_CALL PFNGLPROGRAMBINARYPROC glad_glProgramBinary; +#define glProgramBinary glad_glProgramBinary +GLAD_API_CALL PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri; +#define glProgramParameteri glad_glProgramParameteri +GLAD_API_CALL PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d; +#define glProgramUniform1d glad_glProgramUniform1d +GLAD_API_CALL PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv; +#define glProgramUniform1dv glad_glProgramUniform1dv +GLAD_API_CALL PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f; +#define glProgramUniform1f glad_glProgramUniform1f +GLAD_API_CALL PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv; +#define glProgramUniform1fv glad_glProgramUniform1fv +GLAD_API_CALL PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i; +#define glProgramUniform1i glad_glProgramUniform1i +GLAD_API_CALL PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv; +#define glProgramUniform1iv glad_glProgramUniform1iv +GLAD_API_CALL PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui; +#define glProgramUniform1ui glad_glProgramUniform1ui +GLAD_API_CALL PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv; +#define glProgramUniform1uiv glad_glProgramUniform1uiv +GLAD_API_CALL PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d; +#define glProgramUniform2d glad_glProgramUniform2d +GLAD_API_CALL PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv; +#define glProgramUniform2dv glad_glProgramUniform2dv +GLAD_API_CALL PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f; +#define glProgramUniform2f glad_glProgramUniform2f +GLAD_API_CALL PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv; +#define glProgramUniform2fv glad_glProgramUniform2fv +GLAD_API_CALL PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i; +#define glProgramUniform2i glad_glProgramUniform2i +GLAD_API_CALL PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv; +#define glProgramUniform2iv glad_glProgramUniform2iv +GLAD_API_CALL PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui; +#define glProgramUniform2ui glad_glProgramUniform2ui +GLAD_API_CALL PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv; +#define glProgramUniform2uiv glad_glProgramUniform2uiv +GLAD_API_CALL PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d; +#define glProgramUniform3d glad_glProgramUniform3d +GLAD_API_CALL PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv; +#define glProgramUniform3dv glad_glProgramUniform3dv +GLAD_API_CALL PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f; +#define glProgramUniform3f glad_glProgramUniform3f +GLAD_API_CALL PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv; +#define glProgramUniform3fv glad_glProgramUniform3fv +GLAD_API_CALL PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i; +#define glProgramUniform3i glad_glProgramUniform3i +GLAD_API_CALL PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv; +#define glProgramUniform3iv glad_glProgramUniform3iv +GLAD_API_CALL PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui; +#define glProgramUniform3ui glad_glProgramUniform3ui +GLAD_API_CALL PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv; +#define glProgramUniform3uiv glad_glProgramUniform3uiv +GLAD_API_CALL PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d; +#define glProgramUniform4d glad_glProgramUniform4d +GLAD_API_CALL PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv; +#define glProgramUniform4dv glad_glProgramUniform4dv +GLAD_API_CALL PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f; +#define glProgramUniform4f glad_glProgramUniform4f +GLAD_API_CALL PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv; +#define glProgramUniform4fv glad_glProgramUniform4fv +GLAD_API_CALL PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i; +#define glProgramUniform4i glad_glProgramUniform4i +GLAD_API_CALL PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv; +#define glProgramUniform4iv glad_glProgramUniform4iv +GLAD_API_CALL PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui; +#define glProgramUniform4ui glad_glProgramUniform4ui +GLAD_API_CALL PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv; +#define glProgramUniform4uiv glad_glProgramUniform4uiv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv; +#define glProgramUniformMatrix2dv glad_glProgramUniformMatrix2dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv; +#define glProgramUniformMatrix2fv glad_glProgramUniformMatrix2fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv; +#define glProgramUniformMatrix2x3dv glad_glProgramUniformMatrix2x3dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv; +#define glProgramUniformMatrix2x3fv glad_glProgramUniformMatrix2x3fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv; +#define glProgramUniformMatrix2x4dv glad_glProgramUniformMatrix2x4dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv; +#define glProgramUniformMatrix2x4fv glad_glProgramUniformMatrix2x4fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv; +#define glProgramUniformMatrix3dv glad_glProgramUniformMatrix3dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv; +#define glProgramUniformMatrix3fv glad_glProgramUniformMatrix3fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv; +#define glProgramUniformMatrix3x2dv glad_glProgramUniformMatrix3x2dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv; +#define glProgramUniformMatrix3x2fv glad_glProgramUniformMatrix3x2fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv; +#define glProgramUniformMatrix3x4dv glad_glProgramUniformMatrix3x4dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv; +#define glProgramUniformMatrix3x4fv glad_glProgramUniformMatrix3x4fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv; +#define glProgramUniformMatrix4dv glad_glProgramUniformMatrix4dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv; +#define glProgramUniformMatrix4fv glad_glProgramUniformMatrix4fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv; +#define glProgramUniformMatrix4x2dv glad_glProgramUniformMatrix4x2dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv; +#define glProgramUniformMatrix4x2fv glad_glProgramUniformMatrix4x2fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv; +#define glProgramUniformMatrix4x3dv glad_glProgramUniformMatrix4x3dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv; +#define glProgramUniformMatrix4x3fv glad_glProgramUniformMatrix4x3fv +GLAD_API_CALL PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; +#define glProvokingVertex glad_glProvokingVertex +GLAD_API_CALL PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup; +#define glPushDebugGroup glad_glPushDebugGroup +GLAD_API_CALL PFNGLQUERYCOUNTERPROC glad_glQueryCounter; +#define glQueryCounter glad_glQueryCounter +GLAD_API_CALL PFNGLREADBUFFERPROC glad_glReadBuffer; +#define glReadBuffer glad_glReadBuffer +GLAD_API_CALL PFNGLREADPIXELSPROC glad_glReadPixels; +#define glReadPixels glad_glReadPixels +GLAD_API_CALL PFNGLREADNPIXELSPROC glad_glReadnPixels; +#define glReadnPixels glad_glReadnPixels +GLAD_API_CALL PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler; +#define glReleaseShaderCompiler glad_glReleaseShaderCompiler +GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; +#define glRenderbufferStorage glad_glRenderbufferStorage +GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; +#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample +GLAD_API_CALL PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback; +#define glResumeTransformFeedback glad_glResumeTransformFeedback +GLAD_API_CALL PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; +#define glSampleCoverage glad_glSampleCoverage +GLAD_API_CALL PFNGLSAMPLEMASKIPROC glad_glSampleMaski; +#define glSampleMaski glad_glSampleMaski +GLAD_API_CALL PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; +#define glSamplerParameterIiv glad_glSamplerParameterIiv +GLAD_API_CALL PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; +#define glSamplerParameterIuiv glad_glSamplerParameterIuiv +GLAD_API_CALL PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; +#define glSamplerParameterf glad_glSamplerParameterf +GLAD_API_CALL PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; +#define glSamplerParameterfv glad_glSamplerParameterfv +GLAD_API_CALL PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; +#define glSamplerParameteri glad_glSamplerParameteri +GLAD_API_CALL PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; +#define glSamplerParameteriv glad_glSamplerParameteriv +GLAD_API_CALL PFNGLSCISSORPROC glad_glScissor; +#define glScissor glad_glScissor +GLAD_API_CALL PFNGLSCISSORARRAYVPROC glad_glScissorArrayv; +#define glScissorArrayv glad_glScissorArrayv +GLAD_API_CALL PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed; +#define glScissorIndexed glad_glScissorIndexed +GLAD_API_CALL PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv; +#define glScissorIndexedv glad_glScissorIndexedv +GLAD_API_CALL PFNGLSHADERBINARYPROC glad_glShaderBinary; +#define glShaderBinary glad_glShaderBinary +GLAD_API_CALL PFNGLSHADERSOURCEPROC glad_glShaderSource; +#define glShaderSource glad_glShaderSource +GLAD_API_CALL PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding; +#define glShaderStorageBlockBinding glad_glShaderStorageBlockBinding +GLAD_API_CALL PFNGLSPECIALIZESHADERPROC glad_glSpecializeShader; +#define glSpecializeShader glad_glSpecializeShader +GLAD_API_CALL PFNGLSTENCILFUNCPROC glad_glStencilFunc; +#define glStencilFunc glad_glStencilFunc +GLAD_API_CALL PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; +#define glStencilFuncSeparate glad_glStencilFuncSeparate +GLAD_API_CALL PFNGLSTENCILMASKPROC glad_glStencilMask; +#define glStencilMask glad_glStencilMask +GLAD_API_CALL PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; +#define glStencilMaskSeparate glad_glStencilMaskSeparate +GLAD_API_CALL PFNGLSTENCILOPPROC glad_glStencilOp; +#define glStencilOp glad_glStencilOp +GLAD_API_CALL PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; +#define glStencilOpSeparate glad_glStencilOpSeparate +GLAD_API_CALL PFNGLTEXBUFFERPROC glad_glTexBuffer; +#define glTexBuffer glad_glTexBuffer +GLAD_API_CALL PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange; +#define glTexBufferRange glad_glTexBufferRange +GLAD_API_CALL PFNGLTEXIMAGE1DPROC glad_glTexImage1D; +#define glTexImage1D glad_glTexImage1D +GLAD_API_CALL PFNGLTEXIMAGE2DPROC glad_glTexImage2D; +#define glTexImage2D glad_glTexImage2D +GLAD_API_CALL PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; +#define glTexImage2DMultisample glad_glTexImage2DMultisample +GLAD_API_CALL PFNGLTEXIMAGE3DPROC glad_glTexImage3D; +#define glTexImage3D glad_glTexImage3D +GLAD_API_CALL PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; +#define glTexImage3DMultisample glad_glTexImage3DMultisample +GLAD_API_CALL PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; +#define glTexParameterIiv glad_glTexParameterIiv +GLAD_API_CALL PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; +#define glTexParameterIuiv glad_glTexParameterIuiv +GLAD_API_CALL PFNGLTEXPARAMETERFPROC glad_glTexParameterf; +#define glTexParameterf glad_glTexParameterf +GLAD_API_CALL PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; +#define glTexParameterfv glad_glTexParameterfv +GLAD_API_CALL PFNGLTEXPARAMETERIPROC glad_glTexParameteri; +#define glTexParameteri glad_glTexParameteri +GLAD_API_CALL PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; +#define glTexParameteriv glad_glTexParameteriv +GLAD_API_CALL PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D; +#define glTexStorage1D glad_glTexStorage1D +GLAD_API_CALL PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D; +#define glTexStorage2D glad_glTexStorage2D +GLAD_API_CALL PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample; +#define glTexStorage2DMultisample glad_glTexStorage2DMultisample +GLAD_API_CALL PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D; +#define glTexStorage3D glad_glTexStorage3D +GLAD_API_CALL PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample; +#define glTexStorage3DMultisample glad_glTexStorage3DMultisample +GLAD_API_CALL PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; +#define glTexSubImage1D glad_glTexSubImage1D +GLAD_API_CALL PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; +#define glTexSubImage2D glad_glTexSubImage2D +GLAD_API_CALL PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; +#define glTexSubImage3D glad_glTexSubImage3D +GLAD_API_CALL PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier; +#define glTextureBarrier glad_glTextureBarrier +GLAD_API_CALL PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer; +#define glTextureBuffer glad_glTextureBuffer +GLAD_API_CALL PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange; +#define glTextureBufferRange glad_glTextureBufferRange +GLAD_API_CALL PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv; +#define glTextureParameterIiv glad_glTextureParameterIiv +GLAD_API_CALL PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv; +#define glTextureParameterIuiv glad_glTextureParameterIuiv +GLAD_API_CALL PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf; +#define glTextureParameterf glad_glTextureParameterf +GLAD_API_CALL PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv; +#define glTextureParameterfv glad_glTextureParameterfv +GLAD_API_CALL PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri; +#define glTextureParameteri glad_glTextureParameteri +GLAD_API_CALL PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv; +#define glTextureParameteriv glad_glTextureParameteriv +GLAD_API_CALL PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D; +#define glTextureStorage1D glad_glTextureStorage1D +GLAD_API_CALL PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D; +#define glTextureStorage2D glad_glTextureStorage2D +GLAD_API_CALL PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample; +#define glTextureStorage2DMultisample glad_glTextureStorage2DMultisample +GLAD_API_CALL PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D; +#define glTextureStorage3D glad_glTextureStorage3D +GLAD_API_CALL PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample; +#define glTextureStorage3DMultisample glad_glTextureStorage3DMultisample +GLAD_API_CALL PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D; +#define glTextureSubImage1D glad_glTextureSubImage1D +GLAD_API_CALL PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D; +#define glTextureSubImage2D glad_glTextureSubImage2D +GLAD_API_CALL PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D; +#define glTextureSubImage3D glad_glTextureSubImage3D +GLAD_API_CALL PFNGLTEXTUREVIEWPROC glad_glTextureView; +#define glTextureView glad_glTextureView +GLAD_API_CALL PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase; +#define glTransformFeedbackBufferBase glad_glTransformFeedbackBufferBase +GLAD_API_CALL PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange; +#define glTransformFeedbackBufferRange glad_glTransformFeedbackBufferRange +GLAD_API_CALL PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; +#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings +GLAD_API_CALL PFNGLUNIFORM1DPROC glad_glUniform1d; +#define glUniform1d glad_glUniform1d +GLAD_API_CALL PFNGLUNIFORM1DVPROC glad_glUniform1dv; +#define glUniform1dv glad_glUniform1dv +GLAD_API_CALL PFNGLUNIFORM1FPROC glad_glUniform1f; +#define glUniform1f glad_glUniform1f +GLAD_API_CALL PFNGLUNIFORM1FVPROC glad_glUniform1fv; +#define glUniform1fv glad_glUniform1fv +GLAD_API_CALL PFNGLUNIFORM1IPROC glad_glUniform1i; +#define glUniform1i glad_glUniform1i +GLAD_API_CALL PFNGLUNIFORM1IVPROC glad_glUniform1iv; +#define glUniform1iv glad_glUniform1iv +GLAD_API_CALL PFNGLUNIFORM1UIPROC glad_glUniform1ui; +#define glUniform1ui glad_glUniform1ui +GLAD_API_CALL PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; +#define glUniform1uiv glad_glUniform1uiv +GLAD_API_CALL PFNGLUNIFORM2DPROC glad_glUniform2d; +#define glUniform2d glad_glUniform2d +GLAD_API_CALL PFNGLUNIFORM2DVPROC glad_glUniform2dv; +#define glUniform2dv glad_glUniform2dv +GLAD_API_CALL PFNGLUNIFORM2FPROC glad_glUniform2f; +#define glUniform2f glad_glUniform2f +GLAD_API_CALL PFNGLUNIFORM2FVPROC glad_glUniform2fv; +#define glUniform2fv glad_glUniform2fv +GLAD_API_CALL PFNGLUNIFORM2IPROC glad_glUniform2i; +#define glUniform2i glad_glUniform2i +GLAD_API_CALL PFNGLUNIFORM2IVPROC glad_glUniform2iv; +#define glUniform2iv glad_glUniform2iv +GLAD_API_CALL PFNGLUNIFORM2UIPROC glad_glUniform2ui; +#define glUniform2ui glad_glUniform2ui +GLAD_API_CALL PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; +#define glUniform2uiv glad_glUniform2uiv +GLAD_API_CALL PFNGLUNIFORM3DPROC glad_glUniform3d; +#define glUniform3d glad_glUniform3d +GLAD_API_CALL PFNGLUNIFORM3DVPROC glad_glUniform3dv; +#define glUniform3dv glad_glUniform3dv +GLAD_API_CALL PFNGLUNIFORM3FPROC glad_glUniform3f; +#define glUniform3f glad_glUniform3f +GLAD_API_CALL PFNGLUNIFORM3FVPROC glad_glUniform3fv; +#define glUniform3fv glad_glUniform3fv +GLAD_API_CALL PFNGLUNIFORM3IPROC glad_glUniform3i; +#define glUniform3i glad_glUniform3i +GLAD_API_CALL PFNGLUNIFORM3IVPROC glad_glUniform3iv; +#define glUniform3iv glad_glUniform3iv +GLAD_API_CALL PFNGLUNIFORM3UIPROC glad_glUniform3ui; +#define glUniform3ui glad_glUniform3ui +GLAD_API_CALL PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; +#define glUniform3uiv glad_glUniform3uiv +GLAD_API_CALL PFNGLUNIFORM4DPROC glad_glUniform4d; +#define glUniform4d glad_glUniform4d +GLAD_API_CALL PFNGLUNIFORM4DVPROC glad_glUniform4dv; +#define glUniform4dv glad_glUniform4dv +GLAD_API_CALL PFNGLUNIFORM4FPROC glad_glUniform4f; +#define glUniform4f glad_glUniform4f +GLAD_API_CALL PFNGLUNIFORM4FVPROC glad_glUniform4fv; +#define glUniform4fv glad_glUniform4fv +GLAD_API_CALL PFNGLUNIFORM4IPROC glad_glUniform4i; +#define glUniform4i glad_glUniform4i +GLAD_API_CALL PFNGLUNIFORM4IVPROC glad_glUniform4iv; +#define glUniform4iv glad_glUniform4iv +GLAD_API_CALL PFNGLUNIFORM4UIPROC glad_glUniform4ui; +#define glUniform4ui glad_glUniform4ui +GLAD_API_CALL PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; +#define glUniform4uiv glad_glUniform4uiv +GLAD_API_CALL PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; +#define glUniformBlockBinding glad_glUniformBlockBinding +GLAD_API_CALL PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv; +#define glUniformMatrix2dv glad_glUniformMatrix2dv +GLAD_API_CALL PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; +#define glUniformMatrix2fv glad_glUniformMatrix2fv +GLAD_API_CALL PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv; +#define glUniformMatrix2x3dv glad_glUniformMatrix2x3dv +GLAD_API_CALL PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; +#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv +GLAD_API_CALL PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv; +#define glUniformMatrix2x4dv glad_glUniformMatrix2x4dv +GLAD_API_CALL PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; +#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv +GLAD_API_CALL PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv; +#define glUniformMatrix3dv glad_glUniformMatrix3dv +GLAD_API_CALL PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; +#define glUniformMatrix3fv glad_glUniformMatrix3fv +GLAD_API_CALL PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv; +#define glUniformMatrix3x2dv glad_glUniformMatrix3x2dv +GLAD_API_CALL PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; +#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv +GLAD_API_CALL PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv; +#define glUniformMatrix3x4dv glad_glUniformMatrix3x4dv +GLAD_API_CALL PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; +#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv +GLAD_API_CALL PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv; +#define glUniformMatrix4dv glad_glUniformMatrix4dv +GLAD_API_CALL PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; +#define glUniformMatrix4fv glad_glUniformMatrix4fv +GLAD_API_CALL PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv; +#define glUniformMatrix4x2dv glad_glUniformMatrix4x2dv +GLAD_API_CALL PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; +#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv +GLAD_API_CALL PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv; +#define glUniformMatrix4x3dv glad_glUniformMatrix4x3dv +GLAD_API_CALL PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; +#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv +GLAD_API_CALL PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv; +#define glUniformSubroutinesuiv glad_glUniformSubroutinesuiv +GLAD_API_CALL PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; +#define glUnmapBuffer glad_glUnmapBuffer +GLAD_API_CALL PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer; +#define glUnmapNamedBuffer glad_glUnmapNamedBuffer +GLAD_API_CALL PFNGLUSEPROGRAMPROC glad_glUseProgram; +#define glUseProgram glad_glUseProgram +GLAD_API_CALL PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages; +#define glUseProgramStages glad_glUseProgramStages +GLAD_API_CALL PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; +#define glValidateProgram glad_glValidateProgram +GLAD_API_CALL PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline; +#define glValidateProgramPipeline glad_glValidateProgramPipeline +GLAD_API_CALL PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding; +#define glVertexArrayAttribBinding glad_glVertexArrayAttribBinding +GLAD_API_CALL PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat; +#define glVertexArrayAttribFormat glad_glVertexArrayAttribFormat +GLAD_API_CALL PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat; +#define glVertexArrayAttribIFormat glad_glVertexArrayAttribIFormat +GLAD_API_CALL PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat; +#define glVertexArrayAttribLFormat glad_glVertexArrayAttribLFormat +GLAD_API_CALL PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor; +#define glVertexArrayBindingDivisor glad_glVertexArrayBindingDivisor +GLAD_API_CALL PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer; +#define glVertexArrayElementBuffer glad_glVertexArrayElementBuffer +GLAD_API_CALL PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer; +#define glVertexArrayVertexBuffer glad_glVertexArrayVertexBuffer +GLAD_API_CALL PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers; +#define glVertexArrayVertexBuffers glad_glVertexArrayVertexBuffers +GLAD_API_CALL PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; +#define glVertexAttrib1d glad_glVertexAttrib1d +GLAD_API_CALL PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; +#define glVertexAttrib1dv glad_glVertexAttrib1dv +GLAD_API_CALL PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; +#define glVertexAttrib1f glad_glVertexAttrib1f +GLAD_API_CALL PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; +#define glVertexAttrib1fv glad_glVertexAttrib1fv +GLAD_API_CALL PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; +#define glVertexAttrib1s glad_glVertexAttrib1s +GLAD_API_CALL PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; +#define glVertexAttrib1sv glad_glVertexAttrib1sv +GLAD_API_CALL PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; +#define glVertexAttrib2d glad_glVertexAttrib2d +GLAD_API_CALL PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; +#define glVertexAttrib2dv glad_glVertexAttrib2dv +GLAD_API_CALL PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; +#define glVertexAttrib2f glad_glVertexAttrib2f +GLAD_API_CALL PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; +#define glVertexAttrib2fv glad_glVertexAttrib2fv +GLAD_API_CALL PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; +#define glVertexAttrib2s glad_glVertexAttrib2s +GLAD_API_CALL PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; +#define glVertexAttrib2sv glad_glVertexAttrib2sv +GLAD_API_CALL PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; +#define glVertexAttrib3d glad_glVertexAttrib3d +GLAD_API_CALL PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; +#define glVertexAttrib3dv glad_glVertexAttrib3dv +GLAD_API_CALL PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; +#define glVertexAttrib3f glad_glVertexAttrib3f +GLAD_API_CALL PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; +#define glVertexAttrib3fv glad_glVertexAttrib3fv +GLAD_API_CALL PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; +#define glVertexAttrib3s glad_glVertexAttrib3s +GLAD_API_CALL PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; +#define glVertexAttrib3sv glad_glVertexAttrib3sv +GLAD_API_CALL PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; +#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv +GLAD_API_CALL PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; +#define glVertexAttrib4Niv glad_glVertexAttrib4Niv +GLAD_API_CALL PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; +#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv +GLAD_API_CALL PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; +#define glVertexAttrib4Nub glad_glVertexAttrib4Nub +GLAD_API_CALL PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; +#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv +GLAD_API_CALL PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; +#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv +GLAD_API_CALL PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; +#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv +GLAD_API_CALL PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; +#define glVertexAttrib4bv glad_glVertexAttrib4bv +GLAD_API_CALL PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; +#define glVertexAttrib4d glad_glVertexAttrib4d +GLAD_API_CALL PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; +#define glVertexAttrib4dv glad_glVertexAttrib4dv +GLAD_API_CALL PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; +#define glVertexAttrib4f glad_glVertexAttrib4f +GLAD_API_CALL PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; +#define glVertexAttrib4fv glad_glVertexAttrib4fv +GLAD_API_CALL PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; +#define glVertexAttrib4iv glad_glVertexAttrib4iv +GLAD_API_CALL PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; +#define glVertexAttrib4s glad_glVertexAttrib4s +GLAD_API_CALL PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; +#define glVertexAttrib4sv glad_glVertexAttrib4sv +GLAD_API_CALL PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; +#define glVertexAttrib4ubv glad_glVertexAttrib4ubv +GLAD_API_CALL PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; +#define glVertexAttrib4uiv glad_glVertexAttrib4uiv +GLAD_API_CALL PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; +#define glVertexAttrib4usv glad_glVertexAttrib4usv +GLAD_API_CALL PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding; +#define glVertexAttribBinding glad_glVertexAttribBinding +GLAD_API_CALL PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; +#define glVertexAttribDivisor glad_glVertexAttribDivisor +GLAD_API_CALL PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat; +#define glVertexAttribFormat glad_glVertexAttribFormat +GLAD_API_CALL PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; +#define glVertexAttribI1i glad_glVertexAttribI1i +GLAD_API_CALL PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; +#define glVertexAttribI1iv glad_glVertexAttribI1iv +GLAD_API_CALL PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; +#define glVertexAttribI1ui glad_glVertexAttribI1ui +GLAD_API_CALL PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; +#define glVertexAttribI1uiv glad_glVertexAttribI1uiv +GLAD_API_CALL PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; +#define glVertexAttribI2i glad_glVertexAttribI2i +GLAD_API_CALL PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; +#define glVertexAttribI2iv glad_glVertexAttribI2iv +GLAD_API_CALL PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; +#define glVertexAttribI2ui glad_glVertexAttribI2ui +GLAD_API_CALL PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; +#define glVertexAttribI2uiv glad_glVertexAttribI2uiv +GLAD_API_CALL PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; +#define glVertexAttribI3i glad_glVertexAttribI3i +GLAD_API_CALL PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; +#define glVertexAttribI3iv glad_glVertexAttribI3iv +GLAD_API_CALL PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; +#define glVertexAttribI3ui glad_glVertexAttribI3ui +GLAD_API_CALL PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; +#define glVertexAttribI3uiv glad_glVertexAttribI3uiv +GLAD_API_CALL PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; +#define glVertexAttribI4bv glad_glVertexAttribI4bv +GLAD_API_CALL PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; +#define glVertexAttribI4i glad_glVertexAttribI4i +GLAD_API_CALL PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; +#define glVertexAttribI4iv glad_glVertexAttribI4iv +GLAD_API_CALL PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; +#define glVertexAttribI4sv glad_glVertexAttribI4sv +GLAD_API_CALL PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; +#define glVertexAttribI4ubv glad_glVertexAttribI4ubv +GLAD_API_CALL PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; +#define glVertexAttribI4ui glad_glVertexAttribI4ui +GLAD_API_CALL PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; +#define glVertexAttribI4uiv glad_glVertexAttribI4uiv +GLAD_API_CALL PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; +#define glVertexAttribI4usv glad_glVertexAttribI4usv +GLAD_API_CALL PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat; +#define glVertexAttribIFormat glad_glVertexAttribIFormat +GLAD_API_CALL PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; +#define glVertexAttribIPointer glad_glVertexAttribIPointer +GLAD_API_CALL PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d; +#define glVertexAttribL1d glad_glVertexAttribL1d +GLAD_API_CALL PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv; +#define glVertexAttribL1dv glad_glVertexAttribL1dv +GLAD_API_CALL PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d; +#define glVertexAttribL2d glad_glVertexAttribL2d +GLAD_API_CALL PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv; +#define glVertexAttribL2dv glad_glVertexAttribL2dv +GLAD_API_CALL PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d; +#define glVertexAttribL3d glad_glVertexAttribL3d +GLAD_API_CALL PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv; +#define glVertexAttribL3dv glad_glVertexAttribL3dv +GLAD_API_CALL PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d; +#define glVertexAttribL4d glad_glVertexAttribL4d +GLAD_API_CALL PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv; +#define glVertexAttribL4dv glad_glVertexAttribL4dv +GLAD_API_CALL PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat; +#define glVertexAttribLFormat glad_glVertexAttribLFormat +GLAD_API_CALL PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer; +#define glVertexAttribLPointer glad_glVertexAttribLPointer +GLAD_API_CALL PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; +#define glVertexAttribP1ui glad_glVertexAttribP1ui +GLAD_API_CALL PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; +#define glVertexAttribP1uiv glad_glVertexAttribP1uiv +GLAD_API_CALL PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; +#define glVertexAttribP2ui glad_glVertexAttribP2ui +GLAD_API_CALL PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; +#define glVertexAttribP2uiv glad_glVertexAttribP2uiv +GLAD_API_CALL PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; +#define glVertexAttribP3ui glad_glVertexAttribP3ui +GLAD_API_CALL PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; +#define glVertexAttribP3uiv glad_glVertexAttribP3uiv +GLAD_API_CALL PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; +#define glVertexAttribP4ui glad_glVertexAttribP4ui +GLAD_API_CALL PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; +#define glVertexAttribP4uiv glad_glVertexAttribP4uiv +GLAD_API_CALL PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; +#define glVertexAttribPointer glad_glVertexAttribPointer +GLAD_API_CALL PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor; +#define glVertexBindingDivisor glad_glVertexBindingDivisor +GLAD_API_CALL PFNGLVIEWPORTPROC glad_glViewport; +#define glViewport glad_glViewport +GLAD_API_CALL PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv; +#define glViewportArrayv glad_glViewportArrayv +GLAD_API_CALL PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf; +#define glViewportIndexedf glad_glViewportIndexedf +GLAD_API_CALL PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv; +#define glViewportIndexedfv glad_glViewportIndexedfv +GLAD_API_CALL PFNGLWAITSYNCPROC glad_glWaitSync; +#define glWaitSync glad_glWaitSync + + + + + +GLAD_API_CALL int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr); +GLAD_API_CALL int gladLoadGL( GLADloadfunc load); + + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/external/glad/src/gl.c b/external/glad/src/gl.c new file mode 100644 index 0000000..c37bafe --- /dev/null +++ b/external/glad/src/gl.c @@ -0,0 +1,1620 @@ +/** + * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0 + */ +#include +#include +#include +#include + +#ifndef GLAD_IMPL_UTIL_C_ +#define GLAD_IMPL_UTIL_C_ + +#ifdef _MSC_VER +#define GLAD_IMPL_UTIL_SSCANF sscanf_s +#else +#define GLAD_IMPL_UTIL_SSCANF sscanf +#endif + +#endif /* GLAD_IMPL_UTIL_C_ */ + +#ifdef __cplusplus +extern "C" { +#endif + + + +int GLAD_GL_VERSION_1_0 = 0; +int GLAD_GL_VERSION_1_1 = 0; +int GLAD_GL_VERSION_1_2 = 0; +int GLAD_GL_VERSION_1_3 = 0; +int GLAD_GL_VERSION_1_4 = 0; +int GLAD_GL_VERSION_1_5 = 0; +int GLAD_GL_VERSION_2_0 = 0; +int GLAD_GL_VERSION_2_1 = 0; +int GLAD_GL_VERSION_3_0 = 0; +int GLAD_GL_VERSION_3_1 = 0; +int GLAD_GL_VERSION_3_2 = 0; +int GLAD_GL_VERSION_3_3 = 0; +int GLAD_GL_VERSION_4_0 = 0; +int GLAD_GL_VERSION_4_1 = 0; +int GLAD_GL_VERSION_4_2 = 0; +int GLAD_GL_VERSION_4_3 = 0; +int GLAD_GL_VERSION_4_4 = 0; +int GLAD_GL_VERSION_4_5 = 0; +int GLAD_GL_VERSION_4_6 = 0; + + + +PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL; +PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL; +PFNGLATTACHSHADERPROC glad_glAttachShader = NULL; +PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL; +PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL; +PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed = NULL; +PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL; +PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL; +PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL; +PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL; +PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL; +PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase = NULL; +PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange = NULL; +PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL; +PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL; +PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL; +PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture = NULL; +PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures = NULL; +PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL; +PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL; +PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL; +PFNGLBINDSAMPLERSPROC glad_glBindSamplers = NULL; +PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL; +PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit = NULL; +PFNGLBINDTEXTURESPROC glad_glBindTextures = NULL; +PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL; +PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL; +PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer = NULL; +PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers = NULL; +PFNGLBLENDCOLORPROC glad_glBlendColor = NULL; +PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL; +PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL; +PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei = NULL; +PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi = NULL; +PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL; +PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL; +PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei = NULL; +PFNGLBLENDFUNCIPROC glad_glBlendFunci = NULL; +PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL; +PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer = NULL; +PFNGLBUFFERDATAPROC glad_glBufferData = NULL; +PFNGLBUFFERSTORAGEPROC glad_glBufferStorage = NULL; +PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL; +PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL; +PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus = NULL; +PFNGLCLAMPCOLORPROC glad_glClampColor = NULL; +PFNGLCLEARPROC glad_glClear = NULL; +PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData = NULL; +PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData = NULL; +PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL; +PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL; +PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL; +PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL; +PFNGLCLEARCOLORPROC glad_glClearColor = NULL; +PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL; +PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL; +PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData = NULL; +PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv = NULL; +PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL; +PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage = NULL; +PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage = NULL; +PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL; +PFNGLCLIPCONTROLPROC glad_glClipControl = NULL; +PFNGLCOLORMASKPROC glad_glColorMask = NULL; +PFNGLCOLORMASKIPROC glad_glColorMaski = NULL; +PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL; +PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL; +PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL; +PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL; +PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D = NULL; +PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D = NULL; +PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D = NULL; +PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL; +PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData = NULL; +PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData = NULL; +PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL; +PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL; +PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL; +PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL; +PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL; +PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D = NULL; +PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D = NULL; +PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D = NULL; +PFNGLCREATEBUFFERSPROC glad_glCreateBuffers = NULL; +PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers = NULL; +PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL; +PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines = NULL; +PFNGLCREATEQUERIESPROC glad_glCreateQueries = NULL; +PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers = NULL; +PFNGLCREATESAMPLERSPROC glad_glCreateSamplers = NULL; +PFNGLCREATESHADERPROC glad_glCreateShader = NULL; +PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL; +PFNGLCREATETEXTURESPROC glad_glCreateTextures = NULL; +PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks = NULL; +PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays = NULL; +PFNGLCULLFACEPROC glad_glCullFace = NULL; +PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback = NULL; +PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl = NULL; +PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert = NULL; +PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL; +PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL; +PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL; +PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL; +PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL; +PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL; +PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers = NULL; +PFNGLDELETESHADERPROC glad_glDeleteShader = NULL; +PFNGLDELETESYNCPROC glad_glDeleteSync = NULL; +PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL; +PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks = NULL; +PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL; +PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL; +PFNGLDEPTHMASKPROC glad_glDepthMask = NULL; +PFNGLDEPTHRANGEPROC glad_glDepthRange = NULL; +PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv = NULL; +PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed = NULL; +PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL; +PFNGLDETACHSHADERPROC glad_glDetachShader = NULL; +PFNGLDISABLEPROC glad_glDisable = NULL; +PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib = NULL; +PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL; +PFNGLDISABLEIPROC glad_glDisablei = NULL; +PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute = NULL; +PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect = NULL; +PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL; +PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect = NULL; +PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL; +PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance = NULL; +PFNGLDRAWBUFFERPROC glad_glDrawBuffer = NULL; +PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL; +PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL; +PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex = NULL; +PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect = NULL; +PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance = NULL; +PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL; +PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL; +PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback = NULL; +PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced = NULL; +PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream = NULL; +PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced = NULL; +PFNGLENABLEPROC glad_glEnable = NULL; +PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib = NULL; +PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL; +PFNGLENABLEIPROC glad_glEnablei = NULL; +PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL; +PFNGLENDQUERYPROC glad_glEndQuery = NULL; +PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed = NULL; +PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL; +PFNGLFENCESYNCPROC glad_glFenceSync = NULL; +PFNGLFINISHPROC glad_glFinish = NULL; +PFNGLFLUSHPROC glad_glFlush = NULL; +PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL; +PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange = NULL; +PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri = NULL; +PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL; +PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL; +PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D = NULL; +PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL; +PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL; +PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL; +PFNGLFRONTFACEPROC glad_glFrontFace = NULL; +PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL; +PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL; +PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL; +PFNGLGENQUERIESPROC glad_glGenQueries = NULL; +PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL; +PFNGLGENSAMPLERSPROC glad_glGenSamplers = NULL; +PFNGLGENTEXTURESPROC glad_glGenTextures = NULL; +PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL; +PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL; +PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL; +PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap = NULL; +PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv = NULL; +PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL; +PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName = NULL; +PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName = NULL; +PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv = NULL; +PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL; +PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL; +PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL; +PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName = NULL; +PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL; +PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL; +PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL; +PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL; +PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL; +PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL; +PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL; +PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL; +PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL; +PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL; +PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage = NULL; +PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage = NULL; +PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog = NULL; +PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v = NULL; +PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL; +PFNGLGETERRORPROC glad_glGetError = NULL; +PFNGLGETFLOATI_VPROC glad_glGetFloati_v = NULL; +PFNGLGETFLOATVPROC glad_glGetFloatv = NULL; +PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex = NULL; +PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL; +PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv = NULL; +PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus = NULL; +PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL; +PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL; +PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL; +PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL; +PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v = NULL; +PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ = NULL; +PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL; +PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v = NULL; +PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv = NULL; +PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv = NULL; +PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData = NULL; +PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv = NULL; +PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv = NULL; +PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv = NULL; +PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel = NULL; +PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel = NULL; +PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL; +PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL; +PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL; +PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv = NULL; +PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog = NULL; +PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv = NULL; +PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex = NULL; +PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation = NULL; +PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex = NULL; +PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName = NULL; +PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv = NULL; +PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv = NULL; +PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL; +PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v = NULL; +PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv = NULL; +PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v = NULL; +PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv = NULL; +PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv = NULL; +PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL; +PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL; +PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v = NULL; +PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL; +PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL; +PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL; +PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv = NULL; +PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv = NULL; +PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv = NULL; +PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv = NULL; +PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL; +PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL; +PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL; +PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL; +PFNGLGETSTRINGPROC glad_glGetString = NULL; +PFNGLGETSTRINGIPROC glad_glGetStringi = NULL; +PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex = NULL; +PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation = NULL; +PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL; +PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL; +PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL; +PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL; +PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL; +PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL; +PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL; +PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL; +PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage = NULL; +PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv = NULL; +PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv = NULL; +PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv = NULL; +PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv = NULL; +PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv = NULL; +PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv = NULL; +PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage = NULL; +PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL; +PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v = NULL; +PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v = NULL; +PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv = NULL; +PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL; +PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL; +PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL; +PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv = NULL; +PFNGLGETUNIFORMDVPROC glad_glGetUniformdv = NULL; +PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL; +PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL; +PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL; +PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv = NULL; +PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv = NULL; +PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv = NULL; +PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL; +PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL; +PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv = NULL; +PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL; +PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL; +PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL; +PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL; +PFNGLGETNCOMPRESSEDTEXIMAGEPROC glad_glGetnCompressedTexImage = NULL; +PFNGLGETNTEXIMAGEPROC glad_glGetnTexImage = NULL; +PFNGLGETNUNIFORMDVPROC glad_glGetnUniformdv = NULL; +PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv = NULL; +PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv = NULL; +PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv = NULL; +PFNGLHINTPROC glad_glHint = NULL; +PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData = NULL; +PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData = NULL; +PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer = NULL; +PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData = NULL; +PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData = NULL; +PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer = NULL; +PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage = NULL; +PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage = NULL; +PFNGLISBUFFERPROC glad_glIsBuffer = NULL; +PFNGLISENABLEDPROC glad_glIsEnabled = NULL; +PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL; +PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL; +PFNGLISPROGRAMPROC glad_glIsProgram = NULL; +PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL; +PFNGLISQUERYPROC glad_glIsQuery = NULL; +PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL; +PFNGLISSAMPLERPROC glad_glIsSampler = NULL; +PFNGLISSHADERPROC glad_glIsShader = NULL; +PFNGLISSYNCPROC glad_glIsSync = NULL; +PFNGLISTEXTUREPROC glad_glIsTexture = NULL; +PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL; +PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL; +PFNGLLINEWIDTHPROC glad_glLineWidth = NULL; +PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL; +PFNGLLOGICOPPROC glad_glLogicOp = NULL; +PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL; +PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL; +PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer = NULL; +PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange = NULL; +PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier = NULL; +PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion = NULL; +PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading = NULL; +PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL; +PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect = NULL; +PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glad_glMultiDrawArraysIndirectCount = NULL; +PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL; +PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL; +PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect = NULL; +PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glad_glMultiDrawElementsIndirectCount = NULL; +PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData = NULL; +PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage = NULL; +PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData = NULL; +PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer = NULL; +PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers = NULL; +PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri = NULL; +PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer = NULL; +PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer = NULL; +PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture = NULL; +PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer = NULL; +PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage = NULL; +PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample = NULL; +PFNGLOBJECTLABELPROC glad_glObjectLabel = NULL; +PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel = NULL; +PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv = NULL; +PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri = NULL; +PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL; +PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL; +PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL; +PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL; +PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL; +PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL; +PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL; +PFNGLPOINTSIZEPROC glad_glPointSize = NULL; +PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL; +PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL; +PFNGLPOLYGONOFFSETCLAMPPROC glad_glPolygonOffsetClamp = NULL; +PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup = NULL; +PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL; +PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL; +PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL; +PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d = NULL; +PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv = NULL; +PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f = NULL; +PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv = NULL; +PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i = NULL; +PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv = NULL; +PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui = NULL; +PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv = NULL; +PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d = NULL; +PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv = NULL; +PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f = NULL; +PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv = NULL; +PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i = NULL; +PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv = NULL; +PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui = NULL; +PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv = NULL; +PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d = NULL; +PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv = NULL; +PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f = NULL; +PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv = NULL; +PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i = NULL; +PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv = NULL; +PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui = NULL; +PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv = NULL; +PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d = NULL; +PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv = NULL; +PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f = NULL; +PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv = NULL; +PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i = NULL; +PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv = NULL; +PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui = NULL; +PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL; +PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL; +PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup = NULL; +PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL; +PFNGLREADBUFFERPROC glad_glReadBuffer = NULL; +PFNGLREADPIXELSPROC glad_glReadPixels = NULL; +PFNGLREADNPIXELSPROC glad_glReadnPixels = NULL; +PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL; +PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL; +PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL; +PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL; +PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL; +PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL; +PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv = NULL; +PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL; +PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL; +PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL; +PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL; +PFNGLSCISSORPROC glad_glScissor = NULL; +PFNGLSCISSORARRAYVPROC glad_glScissorArrayv = NULL; +PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed = NULL; +PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv = NULL; +PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL; +PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL; +PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding = NULL; +PFNGLSPECIALIZESHADERPROC glad_glSpecializeShader = NULL; +PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL; +PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL; +PFNGLSTENCILMASKPROC glad_glStencilMask = NULL; +PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL; +PFNGLSTENCILOPPROC glad_glStencilOp = NULL; +PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL; +PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL; +PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange = NULL; +PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL; +PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL; +PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL; +PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL; +PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample = NULL; +PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv = NULL; +PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv = NULL; +PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL; +PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL; +PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL; +PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL; +PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D = NULL; +PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D = NULL; +PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample = NULL; +PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D = NULL; +PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample = NULL; +PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL; +PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL; +PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL; +PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier = NULL; +PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer = NULL; +PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange = NULL; +PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv = NULL; +PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv = NULL; +PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf = NULL; +PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv = NULL; +PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri = NULL; +PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv = NULL; +PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D = NULL; +PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D = NULL; +PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample = NULL; +PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D = NULL; +PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample = NULL; +PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D = NULL; +PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D = NULL; +PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D = NULL; +PFNGLTEXTUREVIEWPROC glad_glTextureView = NULL; +PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase = NULL; +PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange = NULL; +PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL; +PFNGLUNIFORM1DPROC glad_glUniform1d = NULL; +PFNGLUNIFORM1DVPROC glad_glUniform1dv = NULL; +PFNGLUNIFORM1FPROC glad_glUniform1f = NULL; +PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL; +PFNGLUNIFORM1IPROC glad_glUniform1i = NULL; +PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL; +PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL; +PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL; +PFNGLUNIFORM2DPROC glad_glUniform2d = NULL; +PFNGLUNIFORM2DVPROC glad_glUniform2dv = NULL; +PFNGLUNIFORM2FPROC glad_glUniform2f = NULL; +PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL; +PFNGLUNIFORM2IPROC glad_glUniform2i = NULL; +PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL; +PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL; +PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL; +PFNGLUNIFORM3DPROC glad_glUniform3d = NULL; +PFNGLUNIFORM3DVPROC glad_glUniform3dv = NULL; +PFNGLUNIFORM3FPROC glad_glUniform3f = NULL; +PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL; +PFNGLUNIFORM3IPROC glad_glUniform3i = NULL; +PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL; +PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL; +PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL; +PFNGLUNIFORM4DPROC glad_glUniform4d = NULL; +PFNGLUNIFORM4DVPROC glad_glUniform4dv = NULL; +PFNGLUNIFORM4FPROC glad_glUniform4f = NULL; +PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL; +PFNGLUNIFORM4IPROC glad_glUniform4i = NULL; +PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL; +PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL; +PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL; +PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL; +PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv = NULL; +PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL; +PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv = NULL; +PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL; +PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv = NULL; +PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL; +PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv = NULL; +PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL; +PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv = NULL; +PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL; +PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv = NULL; +PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL; +PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv = NULL; +PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL; +PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv = NULL; +PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL; +PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv = NULL; +PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL; +PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv = NULL; +PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL; +PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer = NULL; +PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL; +PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL; +PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL; +PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL; +PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding = NULL; +PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat = NULL; +PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat = NULL; +PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat = NULL; +PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor = NULL; +PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer = NULL; +PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer = NULL; +PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers = NULL; +PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL; +PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL; +PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL; +PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL; +PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s = NULL; +PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv = NULL; +PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d = NULL; +PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv = NULL; +PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL; +PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL; +PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s = NULL; +PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv = NULL; +PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d = NULL; +PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv = NULL; +PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL; +PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL; +PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s = NULL; +PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv = NULL; +PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv = NULL; +PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv = NULL; +PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv = NULL; +PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub = NULL; +PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv = NULL; +PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv = NULL; +PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv = NULL; +PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv = NULL; +PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d = NULL; +PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv = NULL; +PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL; +PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL; +PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv = NULL; +PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s = NULL; +PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv = NULL; +PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv = NULL; +PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv = NULL; +PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv = NULL; +PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding = NULL; +PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor = NULL; +PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat = NULL; +PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i = NULL; +PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv = NULL; +PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui = NULL; +PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv = NULL; +PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i = NULL; +PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv = NULL; +PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui = NULL; +PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv = NULL; +PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i = NULL; +PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv = NULL; +PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui = NULL; +PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv = NULL; +PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv = NULL; +PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL; +PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL; +PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv = NULL; +PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv = NULL; +PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL; +PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL; +PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv = NULL; +PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat = NULL; +PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL; +PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d = NULL; +PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv = NULL; +PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d = NULL; +PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv = NULL; +PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d = NULL; +PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv = NULL; +PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d = NULL; +PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv = NULL; +PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat = NULL; +PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer = NULL; +PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui = NULL; +PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv = NULL; +PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui = NULL; +PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv = NULL; +PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui = NULL; +PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv = NULL; +PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui = NULL; +PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv = NULL; +PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL; +PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor = NULL; +PFNGLVIEWPORTPROC glad_glViewport = NULL; +PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv = NULL; +PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf = NULL; +PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv = NULL; +PFNGLWAITSYNCPROC glad_glWaitSync = NULL; + + +static void glad_gl_load_GL_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_0) return; + glad_glBlendFunc = (PFNGLBLENDFUNCPROC) load(userptr, "glBlendFunc"); + glad_glClear = (PFNGLCLEARPROC) load(userptr, "glClear"); + glad_glClearColor = (PFNGLCLEARCOLORPROC) load(userptr, "glClearColor"); + glad_glClearDepth = (PFNGLCLEARDEPTHPROC) load(userptr, "glClearDepth"); + glad_glClearStencil = (PFNGLCLEARSTENCILPROC) load(userptr, "glClearStencil"); + glad_glColorMask = (PFNGLCOLORMASKPROC) load(userptr, "glColorMask"); + glad_glCullFace = (PFNGLCULLFACEPROC) load(userptr, "glCullFace"); + glad_glDepthFunc = (PFNGLDEPTHFUNCPROC) load(userptr, "glDepthFunc"); + glad_glDepthMask = (PFNGLDEPTHMASKPROC) load(userptr, "glDepthMask"); + glad_glDepthRange = (PFNGLDEPTHRANGEPROC) load(userptr, "glDepthRange"); + glad_glDisable = (PFNGLDISABLEPROC) load(userptr, "glDisable"); + glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC) load(userptr, "glDrawBuffer"); + glad_glEnable = (PFNGLENABLEPROC) load(userptr, "glEnable"); + glad_glFinish = (PFNGLFINISHPROC) load(userptr, "glFinish"); + glad_glFlush = (PFNGLFLUSHPROC) load(userptr, "glFlush"); + glad_glFrontFace = (PFNGLFRONTFACEPROC) load(userptr, "glFrontFace"); + glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC) load(userptr, "glGetBooleanv"); + glad_glGetDoublev = (PFNGLGETDOUBLEVPROC) load(userptr, "glGetDoublev"); + glad_glGetError = (PFNGLGETERRORPROC) load(userptr, "glGetError"); + glad_glGetFloatv = (PFNGLGETFLOATVPROC) load(userptr, "glGetFloatv"); + glad_glGetIntegerv = (PFNGLGETINTEGERVPROC) load(userptr, "glGetIntegerv"); + glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString"); + glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC) load(userptr, "glGetTexImage"); + glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC) load(userptr, "glGetTexLevelParameterfv"); + glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC) load(userptr, "glGetTexLevelParameteriv"); + glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC) load(userptr, "glGetTexParameterfv"); + glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC) load(userptr, "glGetTexParameteriv"); + glad_glHint = (PFNGLHINTPROC) load(userptr, "glHint"); + glad_glIsEnabled = (PFNGLISENABLEDPROC) load(userptr, "glIsEnabled"); + glad_glLineWidth = (PFNGLLINEWIDTHPROC) load(userptr, "glLineWidth"); + glad_glLogicOp = (PFNGLLOGICOPPROC) load(userptr, "glLogicOp"); + glad_glPixelStoref = (PFNGLPIXELSTOREFPROC) load(userptr, "glPixelStoref"); + glad_glPixelStorei = (PFNGLPIXELSTOREIPROC) load(userptr, "glPixelStorei"); + glad_glPointSize = (PFNGLPOINTSIZEPROC) load(userptr, "glPointSize"); + glad_glPolygonMode = (PFNGLPOLYGONMODEPROC) load(userptr, "glPolygonMode"); + glad_glReadBuffer = (PFNGLREADBUFFERPROC) load(userptr, "glReadBuffer"); + glad_glReadPixels = (PFNGLREADPIXELSPROC) load(userptr, "glReadPixels"); + glad_glScissor = (PFNGLSCISSORPROC) load(userptr, "glScissor"); + glad_glStencilFunc = (PFNGLSTENCILFUNCPROC) load(userptr, "glStencilFunc"); + glad_glStencilMask = (PFNGLSTENCILMASKPROC) load(userptr, "glStencilMask"); + glad_glStencilOp = (PFNGLSTENCILOPPROC) load(userptr, "glStencilOp"); + glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC) load(userptr, "glTexImage1D"); + glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC) load(userptr, "glTexImage2D"); + glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC) load(userptr, "glTexParameterf"); + glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC) load(userptr, "glTexParameterfv"); + glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC) load(userptr, "glTexParameteri"); + glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC) load(userptr, "glTexParameteriv"); + glad_glViewport = (PFNGLVIEWPORTPROC) load(userptr, "glViewport"); +} +static void glad_gl_load_GL_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_1) return; + glad_glBindTexture = (PFNGLBINDTEXTUREPROC) load(userptr, "glBindTexture"); + glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC) load(userptr, "glCopyTexImage1D"); + glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC) load(userptr, "glCopyTexImage2D"); + glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC) load(userptr, "glCopyTexSubImage1D"); + glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC) load(userptr, "glCopyTexSubImage2D"); + glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC) load(userptr, "glDeleteTextures"); + glad_glDrawArrays = (PFNGLDRAWARRAYSPROC) load(userptr, "glDrawArrays"); + glad_glDrawElements = (PFNGLDRAWELEMENTSPROC) load(userptr, "glDrawElements"); + glad_glGenTextures = (PFNGLGENTEXTURESPROC) load(userptr, "glGenTextures"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv"); + glad_glIsTexture = (PFNGLISTEXTUREPROC) load(userptr, "glIsTexture"); + glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC) load(userptr, "glPolygonOffset"); + glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC) load(userptr, "glTexSubImage1D"); + glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC) load(userptr, "glTexSubImage2D"); +} +static void glad_gl_load_GL_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_2) return; + glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC) load(userptr, "glCopyTexSubImage3D"); + glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC) load(userptr, "glDrawRangeElements"); + glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC) load(userptr, "glTexImage3D"); + glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC) load(userptr, "glTexSubImage3D"); +} +static void glad_gl_load_GL_VERSION_1_3( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_3) return; + glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC) load(userptr, "glActiveTexture"); + glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC) load(userptr, "glCompressedTexImage1D"); + glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) load(userptr, "glCompressedTexImage2D"); + glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC) load(userptr, "glCompressedTexImage3D"); + glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) load(userptr, "glCompressedTexSubImage1D"); + glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) load(userptr, "glCompressedTexSubImage2D"); + glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) load(userptr, "glCompressedTexSubImage3D"); + glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC) load(userptr, "glGetCompressedTexImage"); + glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC) load(userptr, "glSampleCoverage"); +} +static void glad_gl_load_GL_VERSION_1_4( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_4) return; + glad_glBlendColor = (PFNGLBLENDCOLORPROC) load(userptr, "glBlendColor"); + glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC) load(userptr, "glBlendEquation"); + glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) load(userptr, "glBlendFuncSeparate"); + glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC) load(userptr, "glMultiDrawArrays"); + glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC) load(userptr, "glMultiDrawElements"); + glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC) load(userptr, "glPointParameterf"); + glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC) load(userptr, "glPointParameterfv"); + glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC) load(userptr, "glPointParameteri"); + glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC) load(userptr, "glPointParameteriv"); +} +static void glad_gl_load_GL_VERSION_1_5( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_5) return; + glad_glBeginQuery = (PFNGLBEGINQUERYPROC) load(userptr, "glBeginQuery"); + glad_glBindBuffer = (PFNGLBINDBUFFERPROC) load(userptr, "glBindBuffer"); + glad_glBufferData = (PFNGLBUFFERDATAPROC) load(userptr, "glBufferData"); + glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC) load(userptr, "glBufferSubData"); + glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC) load(userptr, "glDeleteBuffers"); + glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC) load(userptr, "glDeleteQueries"); + glad_glEndQuery = (PFNGLENDQUERYPROC) load(userptr, "glEndQuery"); + glad_glGenBuffers = (PFNGLGENBUFFERSPROC) load(userptr, "glGenBuffers"); + glad_glGenQueries = (PFNGLGENQUERIESPROC) load(userptr, "glGenQueries"); + glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) load(userptr, "glGetBufferParameteriv"); + glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC) load(userptr, "glGetBufferPointerv"); + glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC) load(userptr, "glGetBufferSubData"); + glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC) load(userptr, "glGetQueryObjectiv"); + glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC) load(userptr, "glGetQueryObjectuiv"); + glad_glGetQueryiv = (PFNGLGETQUERYIVPROC) load(userptr, "glGetQueryiv"); + glad_glIsBuffer = (PFNGLISBUFFERPROC) load(userptr, "glIsBuffer"); + glad_glIsQuery = (PFNGLISQUERYPROC) load(userptr, "glIsQuery"); + glad_glMapBuffer = (PFNGLMAPBUFFERPROC) load(userptr, "glMapBuffer"); + glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC) load(userptr, "glUnmapBuffer"); +} +static void glad_gl_load_GL_VERSION_2_0( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_2_0) return; + glad_glAttachShader = (PFNGLATTACHSHADERPROC) load(userptr, "glAttachShader"); + glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) load(userptr, "glBindAttribLocation"); + glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) load(userptr, "glBlendEquationSeparate"); + glad_glCompileShader = (PFNGLCOMPILESHADERPROC) load(userptr, "glCompileShader"); + glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC) load(userptr, "glCreateProgram"); + glad_glCreateShader = (PFNGLCREATESHADERPROC) load(userptr, "glCreateShader"); + glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC) load(userptr, "glDeleteProgram"); + glad_glDeleteShader = (PFNGLDELETESHADERPROC) load(userptr, "glDeleteShader"); + glad_glDetachShader = (PFNGLDETACHSHADERPROC) load(userptr, "glDetachShader"); + glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) load(userptr, "glDisableVertexAttribArray"); + glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC) load(userptr, "glDrawBuffers"); + glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) load(userptr, "glEnableVertexAttribArray"); + glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) load(userptr, "glGetActiveAttrib"); + glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) load(userptr, "glGetActiveUniform"); + glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) load(userptr, "glGetAttachedShaders"); + glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) load(userptr, "glGetAttribLocation"); + glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) load(userptr, "glGetProgramInfoLog"); + glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC) load(userptr, "glGetProgramiv"); + glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) load(userptr, "glGetShaderInfoLog"); + glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC) load(userptr, "glGetShaderSource"); + glad_glGetShaderiv = (PFNGLGETSHADERIVPROC) load(userptr, "glGetShaderiv"); + glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) load(userptr, "glGetUniformLocation"); + glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC) load(userptr, "glGetUniformfv"); + glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC) load(userptr, "glGetUniformiv"); + glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) load(userptr, "glGetVertexAttribPointerv"); + glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC) load(userptr, "glGetVertexAttribdv"); + glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) load(userptr, "glGetVertexAttribfv"); + glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) load(userptr, "glGetVertexAttribiv"); + glad_glIsProgram = (PFNGLISPROGRAMPROC) load(userptr, "glIsProgram"); + glad_glIsShader = (PFNGLISSHADERPROC) load(userptr, "glIsShader"); + glad_glLinkProgram = (PFNGLLINKPROGRAMPROC) load(userptr, "glLinkProgram"); + glad_glShaderSource = (PFNGLSHADERSOURCEPROC) load(userptr, "glShaderSource"); + glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) load(userptr, "glStencilFuncSeparate"); + glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) load(userptr, "glStencilMaskSeparate"); + glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) load(userptr, "glStencilOpSeparate"); + glad_glUniform1f = (PFNGLUNIFORM1FPROC) load(userptr, "glUniform1f"); + glad_glUniform1fv = (PFNGLUNIFORM1FVPROC) load(userptr, "glUniform1fv"); + glad_glUniform1i = (PFNGLUNIFORM1IPROC) load(userptr, "glUniform1i"); + glad_glUniform1iv = (PFNGLUNIFORM1IVPROC) load(userptr, "glUniform1iv"); + glad_glUniform2f = (PFNGLUNIFORM2FPROC) load(userptr, "glUniform2f"); + glad_glUniform2fv = (PFNGLUNIFORM2FVPROC) load(userptr, "glUniform2fv"); + glad_glUniform2i = (PFNGLUNIFORM2IPROC) load(userptr, "glUniform2i"); + glad_glUniform2iv = (PFNGLUNIFORM2IVPROC) load(userptr, "glUniform2iv"); + glad_glUniform3f = (PFNGLUNIFORM3FPROC) load(userptr, "glUniform3f"); + glad_glUniform3fv = (PFNGLUNIFORM3FVPROC) load(userptr, "glUniform3fv"); + glad_glUniform3i = (PFNGLUNIFORM3IPROC) load(userptr, "glUniform3i"); + glad_glUniform3iv = (PFNGLUNIFORM3IVPROC) load(userptr, "glUniform3iv"); + glad_glUniform4f = (PFNGLUNIFORM4FPROC) load(userptr, "glUniform4f"); + glad_glUniform4fv = (PFNGLUNIFORM4FVPROC) load(userptr, "glUniform4fv"); + glad_glUniform4i = (PFNGLUNIFORM4IPROC) load(userptr, "glUniform4i"); + glad_glUniform4iv = (PFNGLUNIFORM4IVPROC) load(userptr, "glUniform4iv"); + glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) load(userptr, "glUniformMatrix2fv"); + glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) load(userptr, "glUniformMatrix3fv"); + glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) load(userptr, "glUniformMatrix4fv"); + glad_glUseProgram = (PFNGLUSEPROGRAMPROC) load(userptr, "glUseProgram"); + glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) load(userptr, "glValidateProgram"); + glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC) load(userptr, "glVertexAttrib1d"); + glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC) load(userptr, "glVertexAttrib1dv"); + glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) load(userptr, "glVertexAttrib1f"); + glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) load(userptr, "glVertexAttrib1fv"); + glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC) load(userptr, "glVertexAttrib1s"); + glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC) load(userptr, "glVertexAttrib1sv"); + glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC) load(userptr, "glVertexAttrib2d"); + glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC) load(userptr, "glVertexAttrib2dv"); + glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) load(userptr, "glVertexAttrib2f"); + glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) load(userptr, "glVertexAttrib2fv"); + glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC) load(userptr, "glVertexAttrib2s"); + glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC) load(userptr, "glVertexAttrib2sv"); + glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC) load(userptr, "glVertexAttrib3d"); + glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC) load(userptr, "glVertexAttrib3dv"); + glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) load(userptr, "glVertexAttrib3f"); + glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) load(userptr, "glVertexAttrib3fv"); + glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC) load(userptr, "glVertexAttrib3s"); + glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC) load(userptr, "glVertexAttrib3sv"); + glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC) load(userptr, "glVertexAttrib4Nbv"); + glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC) load(userptr, "glVertexAttrib4Niv"); + glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC) load(userptr, "glVertexAttrib4Nsv"); + glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC) load(userptr, "glVertexAttrib4Nub"); + glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC) load(userptr, "glVertexAttrib4Nubv"); + glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC) load(userptr, "glVertexAttrib4Nuiv"); + glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC) load(userptr, "glVertexAttrib4Nusv"); + glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC) load(userptr, "glVertexAttrib4bv"); + glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC) load(userptr, "glVertexAttrib4d"); + glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC) load(userptr, "glVertexAttrib4dv"); + glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) load(userptr, "glVertexAttrib4f"); + glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) load(userptr, "glVertexAttrib4fv"); + glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC) load(userptr, "glVertexAttrib4iv"); + glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC) load(userptr, "glVertexAttrib4s"); + glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC) load(userptr, "glVertexAttrib4sv"); + glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC) load(userptr, "glVertexAttrib4ubv"); + glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC) load(userptr, "glVertexAttrib4uiv"); + glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC) load(userptr, "glVertexAttrib4usv"); + glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) load(userptr, "glVertexAttribPointer"); +} +static void glad_gl_load_GL_VERSION_2_1( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_2_1) return; + glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC) load(userptr, "glUniformMatrix2x3fv"); + glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC) load(userptr, "glUniformMatrix2x4fv"); + glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC) load(userptr, "glUniformMatrix3x2fv"); + glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC) load(userptr, "glUniformMatrix3x4fv"); + glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC) load(userptr, "glUniformMatrix4x2fv"); + glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC) load(userptr, "glUniformMatrix4x3fv"); +} +static void glad_gl_load_GL_VERSION_3_0( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_3_0) return; + glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC) load(userptr, "glBeginConditionalRender"); + glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC) load(userptr, "glBeginTransformFeedback"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange"); + glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC) load(userptr, "glBindFragDataLocation"); + glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer"); + glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer"); + glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC) load(userptr, "glBindVertexArray"); + glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC) load(userptr, "glBlitFramebuffer"); + glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus"); + glad_glClampColor = (PFNGLCLAMPCOLORPROC) load(userptr, "glClampColor"); + glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC) load(userptr, "glClearBufferfi"); + glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC) load(userptr, "glClearBufferfv"); + glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC) load(userptr, "glClearBufferiv"); + glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC) load(userptr, "glClearBufferuiv"); + glad_glColorMaski = (PFNGLCOLORMASKIPROC) load(userptr, "glColorMaski"); + glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers"); + glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers"); + glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC) load(userptr, "glDeleteVertexArrays"); + glad_glDisablei = (PFNGLDISABLEIPROC) load(userptr, "glDisablei"); + glad_glEnablei = (PFNGLENABLEIPROC) load(userptr, "glEnablei"); + glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC) load(userptr, "glEndConditionalRender"); + glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC) load(userptr, "glEndTransformFeedback"); + glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC) load(userptr, "glFlushMappedBufferRange"); + glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer"); + glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) load(userptr, "glFramebufferTexture1D"); + glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D"); + glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) load(userptr, "glFramebufferTexture3D"); + glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glFramebufferTextureLayer"); + glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers"); + glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers"); + glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) load(userptr, "glGenVertexArrays"); + glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap"); + glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC) load(userptr, "glGetBooleani_v"); + glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC) load(userptr, "glGetFragDataLocation"); + glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v"); + glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv"); + glad_glGetStringi = (PFNGLGETSTRINGIPROC) load(userptr, "glGetStringi"); + glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC) load(userptr, "glGetTexParameterIiv"); + glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC) load(userptr, "glGetTexParameterIuiv"); + glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) load(userptr, "glGetTransformFeedbackVarying"); + glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC) load(userptr, "glGetUniformuiv"); + glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC) load(userptr, "glGetVertexAttribIiv"); + glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC) load(userptr, "glGetVertexAttribIuiv"); + glad_glIsEnabledi = (PFNGLISENABLEDIPROC) load(userptr, "glIsEnabledi"); + glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer"); + glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer"); + glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC) load(userptr, "glIsVertexArray"); + glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC) load(userptr, "glMapBufferRange"); + glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage"); + glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glRenderbufferStorageMultisample"); + glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC) load(userptr, "glTexParameterIiv"); + glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC) load(userptr, "glTexParameterIuiv"); + glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC) load(userptr, "glTransformFeedbackVaryings"); + glad_glUniform1ui = (PFNGLUNIFORM1UIPROC) load(userptr, "glUniform1ui"); + glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC) load(userptr, "glUniform1uiv"); + glad_glUniform2ui = (PFNGLUNIFORM2UIPROC) load(userptr, "glUniform2ui"); + glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC) load(userptr, "glUniform2uiv"); + glad_glUniform3ui = (PFNGLUNIFORM3UIPROC) load(userptr, "glUniform3ui"); + glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC) load(userptr, "glUniform3uiv"); + glad_glUniform4ui = (PFNGLUNIFORM4UIPROC) load(userptr, "glUniform4ui"); + glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC) load(userptr, "glUniform4uiv"); + glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC) load(userptr, "glVertexAttribI1i"); + glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC) load(userptr, "glVertexAttribI1iv"); + glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC) load(userptr, "glVertexAttribI1ui"); + glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC) load(userptr, "glVertexAttribI1uiv"); + glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC) load(userptr, "glVertexAttribI2i"); + glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC) load(userptr, "glVertexAttribI2iv"); + glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC) load(userptr, "glVertexAttribI2ui"); + glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC) load(userptr, "glVertexAttribI2uiv"); + glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC) load(userptr, "glVertexAttribI3i"); + glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC) load(userptr, "glVertexAttribI3iv"); + glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC) load(userptr, "glVertexAttribI3ui"); + glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC) load(userptr, "glVertexAttribI3uiv"); + glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC) load(userptr, "glVertexAttribI4bv"); + glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC) load(userptr, "glVertexAttribI4i"); + glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC) load(userptr, "glVertexAttribI4iv"); + glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC) load(userptr, "glVertexAttribI4sv"); + glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC) load(userptr, "glVertexAttribI4ubv"); + glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC) load(userptr, "glVertexAttribI4ui"); + glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC) load(userptr, "glVertexAttribI4uiv"); + glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC) load(userptr, "glVertexAttribI4usv"); + glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC) load(userptr, "glVertexAttribIPointer"); +} +static void glad_gl_load_GL_VERSION_3_1( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_3_1) return; + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange"); + glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC) load(userptr, "glCopyBufferSubData"); + glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC) load(userptr, "glDrawArraysInstanced"); + glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC) load(userptr, "glDrawElementsInstanced"); + glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) load(userptr, "glGetActiveUniformBlockName"); + glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC) load(userptr, "glGetActiveUniformBlockiv"); + glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC) load(userptr, "glGetActiveUniformName"); + glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC) load(userptr, "glGetActiveUniformsiv"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v"); + glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC) load(userptr, "glGetUniformBlockIndex"); + glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC) load(userptr, "glGetUniformIndices"); + glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC) load(userptr, "glPrimitiveRestartIndex"); + glad_glTexBuffer = (PFNGLTEXBUFFERPROC) load(userptr, "glTexBuffer"); + glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC) load(userptr, "glUniformBlockBinding"); +} +static void glad_gl_load_GL_VERSION_3_2( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_3_2) return; + glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC) load(userptr, "glClientWaitSync"); + glad_glDeleteSync = (PFNGLDELETESYNCPROC) load(userptr, "glDeleteSync"); + glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glDrawElementsBaseVertex"); + glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) load(userptr, "glDrawElementsInstancedBaseVertex"); + glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) load(userptr, "glDrawRangeElementsBaseVertex"); + glad_glFenceSync = (PFNGLFENCESYNCPROC) load(userptr, "glFenceSync"); + glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC) load(userptr, "glFramebufferTexture"); + glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC) load(userptr, "glGetBufferParameteri64v"); + glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC) load(userptr, "glGetInteger64i_v"); + glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC) load(userptr, "glGetInteger64v"); + glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC) load(userptr, "glGetMultisamplefv"); + glad_glGetSynciv = (PFNGLGETSYNCIVPROC) load(userptr, "glGetSynciv"); + glad_glIsSync = (PFNGLISSYNCPROC) load(userptr, "glIsSync"); + glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glMultiDrawElementsBaseVertex"); + glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC) load(userptr, "glProvokingVertex"); + glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC) load(userptr, "glSampleMaski"); + glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC) load(userptr, "glTexImage2DMultisample"); + glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC) load(userptr, "glTexImage3DMultisample"); + glad_glWaitSync = (PFNGLWAITSYNCPROC) load(userptr, "glWaitSync"); +} +static void glad_gl_load_GL_VERSION_3_3( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_3_3) return; + glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) load(userptr, "glBindFragDataLocationIndexed"); + glad_glBindSampler = (PFNGLBINDSAMPLERPROC) load(userptr, "glBindSampler"); + glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC) load(userptr, "glDeleteSamplers"); + glad_glGenSamplers = (PFNGLGENSAMPLERSPROC) load(userptr, "glGenSamplers"); + glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC) load(userptr, "glGetFragDataIndex"); + glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC) load(userptr, "glGetQueryObjecti64v"); + glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC) load(userptr, "glGetQueryObjectui64v"); + glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC) load(userptr, "glGetSamplerParameterIiv"); + glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC) load(userptr, "glGetSamplerParameterIuiv"); + glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC) load(userptr, "glGetSamplerParameterfv"); + glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC) load(userptr, "glGetSamplerParameteriv"); + glad_glIsSampler = (PFNGLISSAMPLERPROC) load(userptr, "glIsSampler"); + glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC) load(userptr, "glQueryCounter"); + glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC) load(userptr, "glSamplerParameterIiv"); + glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC) load(userptr, "glSamplerParameterIuiv"); + glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC) load(userptr, "glSamplerParameterf"); + glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC) load(userptr, "glSamplerParameterfv"); + glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC) load(userptr, "glSamplerParameteri"); + glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC) load(userptr, "glSamplerParameteriv"); + glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC) load(userptr, "glVertexAttribDivisor"); + glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC) load(userptr, "glVertexAttribP1ui"); + glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC) load(userptr, "glVertexAttribP1uiv"); + glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC) load(userptr, "glVertexAttribP2ui"); + glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC) load(userptr, "glVertexAttribP2uiv"); + glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC) load(userptr, "glVertexAttribP3ui"); + glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC) load(userptr, "glVertexAttribP3uiv"); + glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC) load(userptr, "glVertexAttribP4ui"); + glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC) load(userptr, "glVertexAttribP4uiv"); +} +static void glad_gl_load_GL_VERSION_4_0( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_0) return; + glad_glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC) load(userptr, "glBeginQueryIndexed"); + glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC) load(userptr, "glBindTransformFeedback"); + glad_glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC) load(userptr, "glBlendEquationSeparatei"); + glad_glBlendEquationi = (PFNGLBLENDEQUATIONIPROC) load(userptr, "glBlendEquationi"); + glad_glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC) load(userptr, "glBlendFuncSeparatei"); + glad_glBlendFunci = (PFNGLBLENDFUNCIPROC) load(userptr, "glBlendFunci"); + glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC) load(userptr, "glDeleteTransformFeedbacks"); + glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC) load(userptr, "glDrawArraysIndirect"); + glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC) load(userptr, "glDrawElementsIndirect"); + glad_glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC) load(userptr, "glDrawTransformFeedback"); + glad_glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) load(userptr, "glDrawTransformFeedbackStream"); + glad_glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC) load(userptr, "glEndQueryIndexed"); + glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC) load(userptr, "glGenTransformFeedbacks"); + glad_glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC) load(userptr, "glGetActiveSubroutineName"); + glad_glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) load(userptr, "glGetActiveSubroutineUniformName"); + glad_glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) load(userptr, "glGetActiveSubroutineUniformiv"); + glad_glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC) load(userptr, "glGetProgramStageiv"); + glad_glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC) load(userptr, "glGetQueryIndexediv"); + glad_glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC) load(userptr, "glGetSubroutineIndex"); + glad_glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) load(userptr, "glGetSubroutineUniformLocation"); + glad_glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC) load(userptr, "glGetUniformSubroutineuiv"); + glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC) load(userptr, "glGetUniformdv"); + glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC) load(userptr, "glIsTransformFeedback"); + glad_glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC) load(userptr, "glMinSampleShading"); + glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC) load(userptr, "glPatchParameterfv"); + glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC) load(userptr, "glPatchParameteri"); + glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC) load(userptr, "glPauseTransformFeedback"); + glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC) load(userptr, "glResumeTransformFeedback"); + glad_glUniform1d = (PFNGLUNIFORM1DPROC) load(userptr, "glUniform1d"); + glad_glUniform1dv = (PFNGLUNIFORM1DVPROC) load(userptr, "glUniform1dv"); + glad_glUniform2d = (PFNGLUNIFORM2DPROC) load(userptr, "glUniform2d"); + glad_glUniform2dv = (PFNGLUNIFORM2DVPROC) load(userptr, "glUniform2dv"); + glad_glUniform3d = (PFNGLUNIFORM3DPROC) load(userptr, "glUniform3d"); + glad_glUniform3dv = (PFNGLUNIFORM3DVPROC) load(userptr, "glUniform3dv"); + glad_glUniform4d = (PFNGLUNIFORM4DPROC) load(userptr, "glUniform4d"); + glad_glUniform4dv = (PFNGLUNIFORM4DVPROC) load(userptr, "glUniform4dv"); + glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC) load(userptr, "glUniformMatrix2dv"); + glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC) load(userptr, "glUniformMatrix2x3dv"); + glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC) load(userptr, "glUniformMatrix2x4dv"); + glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC) load(userptr, "glUniformMatrix3dv"); + glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC) load(userptr, "glUniformMatrix3x2dv"); + glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC) load(userptr, "glUniformMatrix3x4dv"); + glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC) load(userptr, "glUniformMatrix4dv"); + glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC) load(userptr, "glUniformMatrix4x2dv"); + glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC) load(userptr, "glUniformMatrix4x3dv"); + glad_glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC) load(userptr, "glUniformSubroutinesuiv"); +} +static void glad_gl_load_GL_VERSION_4_1( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_1) return; + glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC) load(userptr, "glActiveShaderProgram"); + glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC) load(userptr, "glBindProgramPipeline"); + glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf"); + glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC) load(userptr, "glCreateShaderProgramv"); + glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC) load(userptr, "glDeleteProgramPipelines"); + glad_glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC) load(userptr, "glDepthRangeArrayv"); + glad_glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC) load(userptr, "glDepthRangeIndexed"); + glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef"); + glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC) load(userptr, "glGenProgramPipelines"); + glad_glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC) load(userptr, "glGetDoublei_v"); + glad_glGetFloati_v = (PFNGLGETFLOATI_VPROC) load(userptr, "glGetFloati_v"); + glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC) load(userptr, "glGetProgramBinary"); + glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC) load(userptr, "glGetProgramPipelineInfoLog"); + glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC) load(userptr, "glGetProgramPipelineiv"); + glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat"); + glad_glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC) load(userptr, "glGetVertexAttribLdv"); + glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC) load(userptr, "glIsProgramPipeline"); + glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC) load(userptr, "glProgramBinary"); + glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC) load(userptr, "glProgramParameteri"); + glad_glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC) load(userptr, "glProgramUniform1d"); + glad_glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC) load(userptr, "glProgramUniform1dv"); + glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC) load(userptr, "glProgramUniform1f"); + glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC) load(userptr, "glProgramUniform1fv"); + glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC) load(userptr, "glProgramUniform1i"); + glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC) load(userptr, "glProgramUniform1iv"); + glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC) load(userptr, "glProgramUniform1ui"); + glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC) load(userptr, "glProgramUniform1uiv"); + glad_glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC) load(userptr, "glProgramUniform2d"); + glad_glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC) load(userptr, "glProgramUniform2dv"); + glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC) load(userptr, "glProgramUniform2f"); + glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC) load(userptr, "glProgramUniform2fv"); + glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC) load(userptr, "glProgramUniform2i"); + glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC) load(userptr, "glProgramUniform2iv"); + glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC) load(userptr, "glProgramUniform2ui"); + glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC) load(userptr, "glProgramUniform2uiv"); + glad_glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC) load(userptr, "glProgramUniform3d"); + glad_glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC) load(userptr, "glProgramUniform3dv"); + glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC) load(userptr, "glProgramUniform3f"); + glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC) load(userptr, "glProgramUniform3fv"); + glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC) load(userptr, "glProgramUniform3i"); + glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC) load(userptr, "glProgramUniform3iv"); + glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC) load(userptr, "glProgramUniform3ui"); + glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC) load(userptr, "glProgramUniform3uiv"); + glad_glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC) load(userptr, "glProgramUniform4d"); + glad_glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC) load(userptr, "glProgramUniform4dv"); + glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC) load(userptr, "glProgramUniform4f"); + glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC) load(userptr, "glProgramUniform4fv"); + glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC) load(userptr, "glProgramUniform4i"); + glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC) load(userptr, "glProgramUniform4iv"); + glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC) load(userptr, "glProgramUniform4ui"); + glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC) load(userptr, "glProgramUniform4uiv"); + glad_glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC) load(userptr, "glProgramUniformMatrix2dv"); + glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC) load(userptr, "glProgramUniformMatrix2fv"); + glad_glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) load(userptr, "glProgramUniformMatrix2x3dv"); + glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) load(userptr, "glProgramUniformMatrix2x3fv"); + glad_glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) load(userptr, "glProgramUniformMatrix2x4dv"); + glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) load(userptr, "glProgramUniformMatrix2x4fv"); + glad_glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC) load(userptr, "glProgramUniformMatrix3dv"); + glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC) load(userptr, "glProgramUniformMatrix3fv"); + glad_glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) load(userptr, "glProgramUniformMatrix3x2dv"); + glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) load(userptr, "glProgramUniformMatrix3x2fv"); + glad_glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) load(userptr, "glProgramUniformMatrix3x4dv"); + glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) load(userptr, "glProgramUniformMatrix3x4fv"); + glad_glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC) load(userptr, "glProgramUniformMatrix4dv"); + glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC) load(userptr, "glProgramUniformMatrix4fv"); + glad_glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) load(userptr, "glProgramUniformMatrix4x2dv"); + glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) load(userptr, "glProgramUniformMatrix4x2fv"); + glad_glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) load(userptr, "glProgramUniformMatrix4x3dv"); + glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) load(userptr, "glProgramUniformMatrix4x3fv"); + glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler"); + glad_glScissorArrayv = (PFNGLSCISSORARRAYVPROC) load(userptr, "glScissorArrayv"); + glad_glScissorIndexed = (PFNGLSCISSORINDEXEDPROC) load(userptr, "glScissorIndexed"); + glad_glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC) load(userptr, "glScissorIndexedv"); + glad_glShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary"); + glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC) load(userptr, "glUseProgramStages"); + glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC) load(userptr, "glValidateProgramPipeline"); + glad_glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC) load(userptr, "glVertexAttribL1d"); + glad_glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC) load(userptr, "glVertexAttribL1dv"); + glad_glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC) load(userptr, "glVertexAttribL2d"); + glad_glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC) load(userptr, "glVertexAttribL2dv"); + glad_glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC) load(userptr, "glVertexAttribL3d"); + glad_glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC) load(userptr, "glVertexAttribL3dv"); + glad_glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC) load(userptr, "glVertexAttribL4d"); + glad_glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC) load(userptr, "glVertexAttribL4dv"); + glad_glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC) load(userptr, "glVertexAttribLPointer"); + glad_glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC) load(userptr, "glViewportArrayv"); + glad_glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC) load(userptr, "glViewportIndexedf"); + glad_glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC) load(userptr, "glViewportIndexedfv"); +} +static void glad_gl_load_GL_VERSION_4_2( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_2) return; + glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC) load(userptr, "glBindImageTexture"); + glad_glDrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) load(userptr, "glDrawArraysInstancedBaseInstance"); + glad_glDrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) load(userptr, "glDrawElementsInstancedBaseInstance"); + glad_glDrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) load(userptr, "glDrawElementsInstancedBaseVertexBaseInstance"); + glad_glDrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) load(userptr, "glDrawTransformFeedbackInstanced"); + glad_glDrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) load(userptr, "glDrawTransformFeedbackStreamInstanced"); + glad_glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) load(userptr, "glGetActiveAtomicCounterBufferiv"); + glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC) load(userptr, "glGetInternalformativ"); + glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC) load(userptr, "glMemoryBarrier"); + glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC) load(userptr, "glTexStorage1D"); + glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC) load(userptr, "glTexStorage2D"); + glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC) load(userptr, "glTexStorage3D"); +} +static void glad_gl_load_GL_VERSION_4_3( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_3) return; + glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC) load(userptr, "glBindVertexBuffer"); + glad_glClearBufferData = (PFNGLCLEARBUFFERDATAPROC) load(userptr, "glClearBufferData"); + glad_glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC) load(userptr, "glClearBufferSubData"); + glad_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC) load(userptr, "glCopyImageSubData"); + glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC) load(userptr, "glDebugMessageCallback"); + glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC) load(userptr, "glDebugMessageControl"); + glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC) load(userptr, "glDebugMessageInsert"); + glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC) load(userptr, "glDispatchCompute"); + glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC) load(userptr, "glDispatchComputeIndirect"); + glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC) load(userptr, "glFramebufferParameteri"); + glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC) load(userptr, "glGetDebugMessageLog"); + glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetFramebufferParameteriv"); + glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC) load(userptr, "glGetInternalformati64v"); + glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC) load(userptr, "glGetObjectLabel"); + glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC) load(userptr, "glGetObjectPtrLabel"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv"); + glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC) load(userptr, "glGetProgramInterfaceiv"); + glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC) load(userptr, "glGetProgramResourceIndex"); + glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC) load(userptr, "glGetProgramResourceLocation"); + glad_glGetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) load(userptr, "glGetProgramResourceLocationIndex"); + glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC) load(userptr, "glGetProgramResourceName"); + glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC) load(userptr, "glGetProgramResourceiv"); + glad_glInvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC) load(userptr, "glInvalidateBufferData"); + glad_glInvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC) load(userptr, "glInvalidateBufferSubData"); + glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC) load(userptr, "glInvalidateFramebuffer"); + glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC) load(userptr, "glInvalidateSubFramebuffer"); + glad_glInvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC) load(userptr, "glInvalidateTexImage"); + glad_glInvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC) load(userptr, "glInvalidateTexSubImage"); + glad_glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC) load(userptr, "glMultiDrawArraysIndirect"); + glad_glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC) load(userptr, "glMultiDrawElementsIndirect"); + glad_glObjectLabel = (PFNGLOBJECTLABELPROC) load(userptr, "glObjectLabel"); + glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC) load(userptr, "glObjectPtrLabel"); + glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC) load(userptr, "glPopDebugGroup"); + glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC) load(userptr, "glPushDebugGroup"); + glad_glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC) load(userptr, "glShaderStorageBlockBinding"); + glad_glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC) load(userptr, "glTexBufferRange"); + glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC) load(userptr, "glTexStorage2DMultisample"); + glad_glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC) load(userptr, "glTexStorage3DMultisample"); + glad_glTextureView = (PFNGLTEXTUREVIEWPROC) load(userptr, "glTextureView"); + glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC) load(userptr, "glVertexAttribBinding"); + glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC) load(userptr, "glVertexAttribFormat"); + glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC) load(userptr, "glVertexAttribIFormat"); + glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC) load(userptr, "glVertexAttribLFormat"); + glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC) load(userptr, "glVertexBindingDivisor"); +} +static void glad_gl_load_GL_VERSION_4_4( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_4) return; + glad_glBindBuffersBase = (PFNGLBINDBUFFERSBASEPROC) load(userptr, "glBindBuffersBase"); + glad_glBindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC) load(userptr, "glBindBuffersRange"); + glad_glBindImageTextures = (PFNGLBINDIMAGETEXTURESPROC) load(userptr, "glBindImageTextures"); + glad_glBindSamplers = (PFNGLBINDSAMPLERSPROC) load(userptr, "glBindSamplers"); + glad_glBindTextures = (PFNGLBINDTEXTURESPROC) load(userptr, "glBindTextures"); + glad_glBindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC) load(userptr, "glBindVertexBuffers"); + glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC) load(userptr, "glBufferStorage"); + glad_glClearTexImage = (PFNGLCLEARTEXIMAGEPROC) load(userptr, "glClearTexImage"); + glad_glClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC) load(userptr, "glClearTexSubImage"); +} +static void glad_gl_load_GL_VERSION_4_5( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_5) return; + glad_glBindTextureUnit = (PFNGLBINDTEXTUREUNITPROC) load(userptr, "glBindTextureUnit"); + glad_glBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC) load(userptr, "glBlitNamedFramebuffer"); + glad_glCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckNamedFramebufferStatus"); + glad_glClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC) load(userptr, "glClearNamedBufferData"); + glad_glClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC) load(userptr, "glClearNamedBufferSubData"); + glad_glClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) load(userptr, "glClearNamedFramebufferfi"); + glad_glClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) load(userptr, "glClearNamedFramebufferfv"); + glad_glClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) load(userptr, "glClearNamedFramebufferiv"); + glad_glClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) load(userptr, "glClearNamedFramebufferuiv"); + glad_glClipControl = (PFNGLCLIPCONTROLPROC) load(userptr, "glClipControl"); + glad_glCompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) load(userptr, "glCompressedTextureSubImage1D"); + glad_glCompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) load(userptr, "glCompressedTextureSubImage2D"); + glad_glCompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) load(userptr, "glCompressedTextureSubImage3D"); + glad_glCopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC) load(userptr, "glCopyNamedBufferSubData"); + glad_glCopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC) load(userptr, "glCopyTextureSubImage1D"); + glad_glCopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC) load(userptr, "glCopyTextureSubImage2D"); + glad_glCopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC) load(userptr, "glCopyTextureSubImage3D"); + glad_glCreateBuffers = (PFNGLCREATEBUFFERSPROC) load(userptr, "glCreateBuffers"); + glad_glCreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC) load(userptr, "glCreateFramebuffers"); + glad_glCreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC) load(userptr, "glCreateProgramPipelines"); + glad_glCreateQueries = (PFNGLCREATEQUERIESPROC) load(userptr, "glCreateQueries"); + glad_glCreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC) load(userptr, "glCreateRenderbuffers"); + glad_glCreateSamplers = (PFNGLCREATESAMPLERSPROC) load(userptr, "glCreateSamplers"); + glad_glCreateTextures = (PFNGLCREATETEXTURESPROC) load(userptr, "glCreateTextures"); + glad_glCreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC) load(userptr, "glCreateTransformFeedbacks"); + glad_glCreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC) load(userptr, "glCreateVertexArrays"); + glad_glDisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC) load(userptr, "glDisableVertexArrayAttrib"); + glad_glEnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC) load(userptr, "glEnableVertexArrayAttrib"); + glad_glFlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) load(userptr, "glFlushMappedNamedBufferRange"); + glad_glGenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC) load(userptr, "glGenerateTextureMipmap"); + glad_glGetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) load(userptr, "glGetCompressedTextureImage"); + glad_glGetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) load(userptr, "glGetCompressedTextureSubImage"); + glad_glGetGraphicsResetStatus = (PFNGLGETGRAPHICSRESETSTATUSPROC) load(userptr, "glGetGraphicsResetStatus"); + glad_glGetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) load(userptr, "glGetNamedBufferParameteri64v"); + glad_glGetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedBufferParameteriv"); + glad_glGetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC) load(userptr, "glGetNamedBufferPointerv"); + glad_glGetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC) load(userptr, "glGetNamedBufferSubData"); + glad_glGetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetNamedFramebufferAttachmentParameteriv"); + glad_glGetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedFramebufferParameteriv"); + glad_glGetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedRenderbufferParameteriv"); + glad_glGetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC) load(userptr, "glGetQueryBufferObjecti64v"); + glad_glGetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC) load(userptr, "glGetQueryBufferObjectiv"); + glad_glGetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC) load(userptr, "glGetQueryBufferObjectui64v"); + glad_glGetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC) load(userptr, "glGetQueryBufferObjectuiv"); + glad_glGetTextureImage = (PFNGLGETTEXTUREIMAGEPROC) load(userptr, "glGetTextureImage"); + glad_glGetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC) load(userptr, "glGetTextureLevelParameterfv"); + glad_glGetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC) load(userptr, "glGetTextureLevelParameteriv"); + glad_glGetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC) load(userptr, "glGetTextureParameterIiv"); + glad_glGetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC) load(userptr, "glGetTextureParameterIuiv"); + glad_glGetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC) load(userptr, "glGetTextureParameterfv"); + glad_glGetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC) load(userptr, "glGetTextureParameteriv"); + glad_glGetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC) load(userptr, "glGetTextureSubImage"); + glad_glGetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC) load(userptr, "glGetTransformFeedbacki64_v"); + glad_glGetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC) load(userptr, "glGetTransformFeedbacki_v"); + glad_glGetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC) load(userptr, "glGetTransformFeedbackiv"); + glad_glGetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC) load(userptr, "glGetVertexArrayIndexed64iv"); + glad_glGetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC) load(userptr, "glGetVertexArrayIndexediv"); + glad_glGetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC) load(userptr, "glGetVertexArrayiv"); + glad_glGetnCompressedTexImage = (PFNGLGETNCOMPRESSEDTEXIMAGEPROC) load(userptr, "glGetnCompressedTexImage"); + glad_glGetnTexImage = (PFNGLGETNTEXIMAGEPROC) load(userptr, "glGetnTexImage"); + glad_glGetnUniformdv = (PFNGLGETNUNIFORMDVPROC) load(userptr, "glGetnUniformdv"); + glad_glGetnUniformfv = (PFNGLGETNUNIFORMFVPROC) load(userptr, "glGetnUniformfv"); + glad_glGetnUniformiv = (PFNGLGETNUNIFORMIVPROC) load(userptr, "glGetnUniformiv"); + glad_glGetnUniformuiv = (PFNGLGETNUNIFORMUIVPROC) load(userptr, "glGetnUniformuiv"); + glad_glInvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) load(userptr, "glInvalidateNamedFramebufferData"); + glad_glInvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) load(userptr, "glInvalidateNamedFramebufferSubData"); + glad_glMapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC) load(userptr, "glMapNamedBuffer"); + glad_glMapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC) load(userptr, "glMapNamedBufferRange"); + glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC) load(userptr, "glMemoryBarrierByRegion"); + glad_glNamedBufferData = (PFNGLNAMEDBUFFERDATAPROC) load(userptr, "glNamedBufferData"); + glad_glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC) load(userptr, "glNamedBufferStorage"); + glad_glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC) load(userptr, "glNamedBufferSubData"); + glad_glNamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) load(userptr, "glNamedFramebufferDrawBuffer"); + glad_glNamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) load(userptr, "glNamedFramebufferDrawBuffers"); + glad_glNamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) load(userptr, "glNamedFramebufferParameteri"); + glad_glNamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) load(userptr, "glNamedFramebufferReadBuffer"); + glad_glNamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glNamedFramebufferRenderbuffer"); + glad_glNamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) load(userptr, "glNamedFramebufferTexture"); + glad_glNamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glNamedFramebufferTextureLayer"); + glad_glNamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC) load(userptr, "glNamedRenderbufferStorage"); + glad_glNamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glNamedRenderbufferStorageMultisample"); + glad_glReadnPixels = (PFNGLREADNPIXELSPROC) load(userptr, "glReadnPixels"); + glad_glTextureBarrier = (PFNGLTEXTUREBARRIERPROC) load(userptr, "glTextureBarrier"); + glad_glTextureBuffer = (PFNGLTEXTUREBUFFERPROC) load(userptr, "glTextureBuffer"); + glad_glTextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC) load(userptr, "glTextureBufferRange"); + glad_glTextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC) load(userptr, "glTextureParameterIiv"); + glad_glTextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC) load(userptr, "glTextureParameterIuiv"); + glad_glTextureParameterf = (PFNGLTEXTUREPARAMETERFPROC) load(userptr, "glTextureParameterf"); + glad_glTextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC) load(userptr, "glTextureParameterfv"); + glad_glTextureParameteri = (PFNGLTEXTUREPARAMETERIPROC) load(userptr, "glTextureParameteri"); + glad_glTextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC) load(userptr, "glTextureParameteriv"); + glad_glTextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC) load(userptr, "glTextureStorage1D"); + glad_glTextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC) load(userptr, "glTextureStorage2D"); + glad_glTextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) load(userptr, "glTextureStorage2DMultisample"); + glad_glTextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC) load(userptr, "glTextureStorage3D"); + glad_glTextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) load(userptr, "glTextureStorage3DMultisample"); + glad_glTextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC) load(userptr, "glTextureSubImage1D"); + glad_glTextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC) load(userptr, "glTextureSubImage2D"); + glad_glTextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC) load(userptr, "glTextureSubImage3D"); + glad_glTransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) load(userptr, "glTransformFeedbackBufferBase"); + glad_glTransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) load(userptr, "glTransformFeedbackBufferRange"); + glad_glUnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC) load(userptr, "glUnmapNamedBuffer"); + glad_glVertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC) load(userptr, "glVertexArrayAttribBinding"); + glad_glVertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC) load(userptr, "glVertexArrayAttribFormat"); + glad_glVertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC) load(userptr, "glVertexArrayAttribIFormat"); + glad_glVertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC) load(userptr, "glVertexArrayAttribLFormat"); + glad_glVertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC) load(userptr, "glVertexArrayBindingDivisor"); + glad_glVertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC) load(userptr, "glVertexArrayElementBuffer"); + glad_glVertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC) load(userptr, "glVertexArrayVertexBuffer"); + glad_glVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC) load(userptr, "glVertexArrayVertexBuffers"); +} +static void glad_gl_load_GL_VERSION_4_6( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_6) return; + glad_glMultiDrawArraysIndirectCount = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) load(userptr, "glMultiDrawArraysIndirectCount"); + glad_glMultiDrawElementsIndirectCount = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) load(userptr, "glMultiDrawElementsIndirectCount"); + glad_glPolygonOffsetClamp = (PFNGLPOLYGONOFFSETCLAMPPROC) load(userptr, "glPolygonOffsetClamp"); + glad_glSpecializeShader = (PFNGLSPECIALIZESHADERPROC) load(userptr, "glSpecializeShader"); +} + + + +static void glad_gl_free_extensions(char **exts_i) { + if (exts_i != NULL) { + unsigned int index; + for(index = 0; exts_i[index]; index++) { + free((void *) (exts_i[index])); + } + free((void *)exts_i); + exts_i = NULL; + } +} +static int glad_gl_get_extensions( const char **out_exts, char ***out_exts_i) { +#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) + if (glad_glGetStringi != NULL && glad_glGetIntegerv != NULL) { + unsigned int index = 0; + unsigned int num_exts_i = 0; + char **exts_i = NULL; + glad_glGetIntegerv(GL_NUM_EXTENSIONS, (int*) &num_exts_i); + exts_i = (char **) malloc((num_exts_i + 1) * (sizeof *exts_i)); + if (exts_i == NULL) { + return 0; + } + for(index = 0; index < num_exts_i; index++) { + const char *gl_str_tmp = (const char*) glad_glGetStringi(GL_EXTENSIONS, index); + size_t len = strlen(gl_str_tmp) + 1; + + char *local_str = (char*) malloc(len * sizeof(char)); + if(local_str == NULL) { + exts_i[index] = NULL; + glad_gl_free_extensions(exts_i); + return 0; + } + + memcpy(local_str, gl_str_tmp, len * sizeof(char)); + exts_i[index] = local_str; + } + exts_i[index] = NULL; + + *out_exts_i = exts_i; + + return 1; + } +#else + GLAD_UNUSED(out_exts_i); +#endif + if (glad_glGetString == NULL) { + return 0; + } + *out_exts = (const char *)glad_glGetString(GL_EXTENSIONS); + return 1; +} +static int glad_gl_has_extension(const char *exts, char **exts_i, const char *ext) { + if(exts_i) { + unsigned int index; + for(index = 0; exts_i[index]; index++) { + const char *e = exts_i[index]; + if(strcmp(e, ext) == 0) { + return 1; + } + } + } else { + const char *extensions; + const char *loc; + const char *terminator; + extensions = exts; + if(extensions == NULL || ext == NULL) { + return 0; + } + while(1) { + loc = strstr(extensions, ext); + if(loc == NULL) { + return 0; + } + terminator = loc + strlen(ext); + if((loc == extensions || *(loc - 1) == ' ') && + (*terminator == ' ' || *terminator == '\0')) { + return 1; + } + extensions = terminator; + } + } + return 0; +} + +static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name) { + return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name); +} + +static int glad_gl_find_extensions_gl(void) { + const char *exts = NULL; + char **exts_i = NULL; + if (!glad_gl_get_extensions(&exts, &exts_i)) return 0; + + GLAD_UNUSED(&glad_gl_has_extension); + + glad_gl_free_extensions(exts_i); + + return 1; +} + +static int glad_gl_find_core_gl(void) { + int i; + const char* version; + const char* prefixes[] = { + "OpenGL ES-CM ", + "OpenGL ES-CL ", + "OpenGL ES ", + "OpenGL SC ", + NULL + }; + int major = 0; + int minor = 0; + version = (const char*) glad_glGetString(GL_VERSION); + if (!version) return 0; + for (i = 0; prefixes[i]; i++) { + const size_t length = strlen(prefixes[i]); + if (strncmp(version, prefixes[i], length) == 0) { + version += length; + break; + } + } + + GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor); + + GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; + GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; + GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; + GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; + GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; + GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; + GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; + GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; + GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; + GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; + GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; + GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; + GLAD_GL_VERSION_4_0 = (major == 4 && minor >= 0) || major > 4; + GLAD_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4; + GLAD_GL_VERSION_4_2 = (major == 4 && minor >= 2) || major > 4; + GLAD_GL_VERSION_4_3 = (major == 4 && minor >= 3) || major > 4; + GLAD_GL_VERSION_4_4 = (major == 4 && minor >= 4) || major > 4; + GLAD_GL_VERSION_4_5 = (major == 4 && minor >= 5) || major > 4; + GLAD_GL_VERSION_4_6 = (major == 4 && minor >= 6) || major > 4; + + return GLAD_MAKE_VERSION(major, minor); +} + +int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr) { + int version; + + glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString"); + if(glad_glGetString == NULL) return 0; + version = glad_gl_find_core_gl(); + + glad_gl_load_GL_VERSION_1_0(load, userptr); + glad_gl_load_GL_VERSION_1_1(load, userptr); + glad_gl_load_GL_VERSION_1_2(load, userptr); + glad_gl_load_GL_VERSION_1_3(load, userptr); + glad_gl_load_GL_VERSION_1_4(load, userptr); + glad_gl_load_GL_VERSION_1_5(load, userptr); + glad_gl_load_GL_VERSION_2_0(load, userptr); + glad_gl_load_GL_VERSION_2_1(load, userptr); + glad_gl_load_GL_VERSION_3_0(load, userptr); + glad_gl_load_GL_VERSION_3_1(load, userptr); + glad_gl_load_GL_VERSION_3_2(load, userptr); + glad_gl_load_GL_VERSION_3_3(load, userptr); + glad_gl_load_GL_VERSION_4_0(load, userptr); + glad_gl_load_GL_VERSION_4_1(load, userptr); + glad_gl_load_GL_VERSION_4_2(load, userptr); + glad_gl_load_GL_VERSION_4_3(load, userptr); + glad_gl_load_GL_VERSION_4_4(load, userptr); + glad_gl_load_GL_VERSION_4_5(load, userptr); + glad_gl_load_GL_VERSION_4_6(load, userptr); + + if (!glad_gl_find_extensions_gl()) return 0; + + + + return version; +} + + +int gladLoadGL( GLADloadfunc load) { + return gladLoadGLUserPtr( glad_gl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load); +} + + + + + + +#ifdef __cplusplus +} +#endif diff --git a/samples/auroras.lua b/samples/auroras.lua new file mode 100644 index 0000000..a9301c1 --- /dev/null +++ b/samples/auroras.lua @@ -0,0 +1,156 @@ +-- Auroras by nimitz 2017 (twitter: @stormoid) +-- License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License +-- Converted from ShaderToy to live-wallpaper system + +effect = nil + +function _create() + local fxSrc = [[ +in vec2 vPosition; + +#define time uTime + +mat2 mm2(in float a){float c = cos(a), s = sin(a);return mat2(c,s,-s,c);} +mat2 m2 = mat2(0.95534, 0.29552, -0.29552, 0.95534); +float tri(in float x){return clamp(abs(fract(x)-.5),0.01,0.49);} +vec2 tri2(in vec2 p){return vec2(tri(p.x)+tri(p.y),tri(p.y+tri(p.x)));} + +float triNoise2d(in vec2 p, float spd) +{ + float z=1.8; + float z2=2.5; + float rz = 0.; + p *= mm2(p.x*0.06); + vec2 bp = p; + for (float i=0.; i<5.; i++ ) + { + vec2 dg = tri2(bp*1.85)*.75; + dg *= mm2(time*spd); + p -= dg/z2; + + bp *= 1.3; + z2 *= .45; + z *= .42; + p *= 1.21 + (rz-1.0)*.02; + + rz += tri(p.x+tri(p.y))*z; + p*= -m2; + } + return clamp(1./pow(rz*29., 1.3),0.,.55); +} + +float hash21(in vec2 n){ return fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453); } + +vec4 aurora(vec3 ro, vec3 rd) +{ + vec4 col = vec4(0); + vec4 avgCol = vec4(0); + + for(float i=0.;i<50.;i++) + { + float of = 0.006*hash21(gl_FragCoord.xy)*smoothstep(0.,15., i); + float pt = ((.8+pow(i,1.4)*.002)-ro.y)/(rd.y*2.+0.4); + pt -= of; + vec3 bpos = ro + pt*rd; + vec2 p = bpos.zx; + float rzt = triNoise2d(p, 0.06); + vec4 col2 = vec4(0,0,0, rzt); + col2.rgb = (sin(1.-vec3(2.15,-.5, 1.2)+i*0.043)*0.5+0.5)*rzt; + avgCol = mix(avgCol, col2, .5); + col += avgCol*exp2(-i*0.065 - 2.5)*smoothstep(0.,5., i); + } + + col *= (clamp(rd.y*15.+.4,0.,1.)); + + return col*1.8; +} + +//-------------------Background and Stars-------------------- + +vec3 nmzHash33(vec3 q) +{ + uvec3 p = uvec3(ivec3(q)); + p = p*uvec3(374761393U, 1103515245U, 668265263U) + p.zxy + p.yzx; + p = p.yzx*(p.zxy^(p >> 3U)); + return vec3(p^(p >> 16U))*(1.0/vec3(0xffffffffU)); +} + +vec3 stars(in vec3 p) +{ + vec3 c = vec3(0.); + float res = uDesktopSize.x*1.; + + for (float i=0.;i<4.;i++) + { + vec3 q = fract(p*(.15*res))-0.5; + vec3 id = floor(p*(.15*res)); + vec2 rn = nmzHash33(id).xy; + float c2 = 1.-smoothstep(0.,.6,length(q)); + c2 *= step(rn.x,.0005+i*i*0.001); + c += c2*(mix(vec3(1.0,0.49,0.1),vec3(0.75,0.9,1.),rn.y)*0.1+0.9); + p *= 1.3; + } + return c*c*.8; +} + +vec3 bg(in vec3 rd) +{ + float sd = dot(normalize(vec3(-0.5, -0.6, 0.9)), rd)*0.5+0.5; + sd = pow(sd, 5.); + vec3 col = mix(vec3(0.05,0.1,0.2), vec3(0.1,0.05,0.2), sd); + return col*.63; +} +//----------------------------------------------------------- + +void main() +{ + vec2 fragCoord = (vPosition * 0.5 + 0.5) * uDesktopSize; + + vec2 q = fragCoord.xy / uDesktopSize.xy; + vec2 p = q - 0.5; + p.x *= uDesktopSize.x / uDesktopSize.y; + + vec3 ro = vec3(0,0,-6.7); + vec3 rd = normalize(vec3(p,1.3)); + vec2 mo = uMouse.xy / uDesktopSize.xy-.5; + mo = (mo==vec2(-.5))?mo=vec2(-0.1,0.1):mo; + mo.x *= uDesktopSize.x / uDesktopSize.y; + rd.yz *= mm2(mo.y); + rd.xz *= mm2(mo.x + sin(time*0.05)*0.2); + + vec3 col = vec3(0.); + vec3 brd = rd; + float fade = smoothstep(0.,0.01,abs(brd.y))*0.1+0.9; + + col = bg(rd)*fade; + + if (rd.y > 0.){ + vec4 aur = smoothstep(0.,1.5,aurora(ro,rd))*fade; + col += stars(rd); + col = col*(1.-aur.a) + aur.rgb; + } + else //Reflections + { + rd.y = abs(rd.y); + col = bg(rd)*fade*0.6; + vec4 aur = smoothstep(0.0,2.5,aurora(ro,rd)); + col += stars(rd)*0.1; + col = col*(1.-aur.a) + aur.rgb; + vec3 pos = ro + ((0.5-ro.y)/rd.y)*rd; + float nz2 = triNoise2d(pos.xz*vec2(.5,.7), 0.); + col += mix(vec3(0.2,0.25,0.5)*0.08,vec3(0.3,0.3,0.5)*0.7, nz2*0.4); + } + + FragColor = vec4(col, 1.); +} + ]] + effect = Effect.new(fxSrc) +end + +function _update(dt) +end + +function _render() + gl.Clear(0, 0, 0, 1.0) + effect:Render() +end diff --git a/samples/dry_rocky_gorge.lua b/samples/dry_rocky_gorge.lua new file mode 100644 index 0000000..aeb4a90 --- /dev/null +++ b/samples/dry_rocky_gorge.lua @@ -0,0 +1,290 @@ +-- Dry Rocky Gorge by Shane +-- License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License +-- Converted from ShaderToy to live-wallpaper system + +effect = nil +rockTexture = nil + +function _create() + rockTexture = Texture.LoadFromFile("rock_texture.jpg") + rockTexture:Bind() + rockTexture:SetFilter(TextureFilter.LinearMipmapLinear, TextureFilter.Linear) + rockTexture:SetWrap(TextureWrap.Repeat, TextureWrap.Repeat) + rockTexture:GenerateMipmaps() + + local fxSrc = [[ +in vec2 vPosition; + +uniform sampler2D iChannel0; + +#define FAR 80. + +mat2 r2(in float a){ float c = cos(a), s = sin(a); return mat2(c, s, -s, c); } + +float hash31( vec3 p ){ return fract(sin(dot(p, vec3(157, 113, 7)))*45758.5453); } + +float hash21( vec2 p ){ return fract(sin(dot(p, vec2(41, 289)))*45758.5453); } + +vec3 hash33(vec3 p){ + float n = sin(dot(p, vec3(7, 157, 113))); + return fract(vec3(2097152, 262144, 32768)*n); +} + +float n3D(vec3 p){ + const vec3 s = vec3(7, 157, 113); + vec3 ip = floor(p); p -= ip; + vec4 h = vec4(0., s.yz, s.y + s.z) + dot(ip, s); + p = p*p*(3. - 2.*p); + h = mix(fract(sin(h)*43758.5453), fract(sin(h + s.x)*43758.5453), p.x); + h.xy = mix(h.xz, h.yw, p.y); + return mix(h.x, h.y, p.z); +} + +float n2D(vec2 p) { + vec2 i = floor(p); p -= i; p *= p*(3. - p*2.); + return dot(mat2(fract(sin(vec4(0, 41, 289, 330) + dot(i, vec2(41, 289)))*43758.5453))* + vec2(1. - p.y, p.y), vec2(1. - p.x, p.x)); +} + +vec3 tex3D( sampler2D t, in vec3 p, in vec3 n ){ + n = max(abs(n), 0.001); + n /= dot(n, vec3(1)); + vec3 tx = texture(t, p.yz).xyz; + vec3 ty = texture(t, p.zx).xyz; + vec3 tz = texture(t, p.xy).xyz; + return (tx*tx*n.x + ty*ty*n.y + tz*tz*n.z); +} + +vec2 path(in float z){ + return vec2(sin(z*.075)*8., cos(z*.1)*.75); +} + +float smax(float a, float b, float s){ + float h = clamp(.5 + .5*(a - b)/s, 0., 1.); + return mix(b, a, h) + h*(1. - h)*s; +} + +float terrain(vec2 p){ + p /= 8.; + p += .5; + float a = 1., sum = 0., res = 0.; + for (int i=0; i<5; i++){ + res += n2D(p)*a; + p = mat2(1, -.75, .75, 1)*p*2.72; + sum += a; + a *= -.5/1.7; + } + return res/sum; +} + +float map(vec3 p){ + float trSf = terrain(p.xz); + p.xy -= path(p.z); + vec2 ca = abs(p.xy*vec2(1, .7) + vec2(0, -2.75)); + float n = smax(6. - mix(length(ca), max(ca.x, ca.y), .25), p.y - 1.75, 2.) + (.5 - trSf)*4.; + return n; +} + +vec3 texBump( sampler2D tx, in vec3 p, in vec3 n, float bf){ + const vec2 e = vec2(.001, 0); + mat3 m = mat3( tex3D(tx, p - e.xyy, n), tex3D(tx, p - e.yxy, n), tex3D(tx, p - e.yyx, n)); + vec3 g = vec3(.299, .587, .114)*m; + g = (g - dot(tex3D(tx, p , n), vec3(.299, .587, .114)) )/e.x; + g -= n*dot(n, g); + return normalize( n + g*bf ); +} + +float trace(vec3 ro, vec3 rd){ + float t = 0., d; + for (int i=0; i<160; i++){ + d = map(ro + rd*t); + if(abs(d)<.001*(t*.025 + 1.) || t>FAR) break; + t += d*.7; + } + return min(t, FAR); +} + +float softShadow(vec3 ro, vec3 n, vec3 lp, float k, float t){ + const int maxIterationsShad = 48; + ro += n*.0015; + vec3 rd = lp - ro; + float shade = 1.; + float dist = .0; + float end = max(length(rd), 0.0001); + rd /= end; + for (int i=0; i end) break; + } + return min(max(shade, 0.) + .15, 1.); +} + +vec3 getNormal( in vec3 p ){ + vec2 e = vec2(.001, -.001); + return normalize(e.xyy*map(p + e.xyy) + e.yyx*map(p + e.yyx) + e.yxy*map(p + e.yxy) + e.xxx*map(p + e.xxx)); +} + +float calcAO(in vec3 p, in vec3 nor){ + float sca = 1.5, occ = 0.; + for(float i=0.; i<5.; i++){ + float hr = .01 + i*.5/4.; + float dd = map(nor*hr + p); + occ += (hr - dd)*sca; + sca *= .7; + } + return clamp(1. - occ, 0., 1.); +} + +float fmap(vec3 p){ + p *= vec3(1, 4, 1)/400.; + return n3D(p)*0.57 + n3D(p*4.)*0.28 + n3D(p*8.)*0.15; +} + +vec4 cloudLayers(vec3 ro, vec3 rd, vec3 lp, float far){ + rd = (rd + (hash33(rd.zyx)*0.004-0.002)); + rd *= (1. + fract(sin(dot(vec3(7, 157, 113), rd.zyx))*43758.5453)*0.04-0.02); + + float localDensity=0., td=0., w=0.; + float d=1., t=0.; + const float h = .5; + vec3 col = vec3(0), sp; + vec4 d4 = vec4(1, 0, 0, 0); + vec3 sn = normalize(hash33(rd.yxz)*.03-rd); + + for (int i=0; i<4; i++) { + if(td>1. || t>far)break; + sp = ro + rd*t; + d = fmap(sp); + + localDensity = (h - d) * step(d, h); + w = (1. - td) * localDensity; + td += w*.5 + 1./65.; + + vec3 lightDir = lp-sp; + float lDist = max(length(lightDir), 0.001); + lightDir /= lDist; + + float atten = 100./(1. + lDist*0.005 + lDist*lDist*0.00005); + float diff = max(dot( sn, lightDir ), 0.); + float spec = pow(max( dot( reflect(-lightDir, sn), -rd ), 0. ), 4.); + + col += w*(diff + vec3(1, .75, .5)*spec + .5)*atten; + + t += max(d4.x*.5, 0.25)*100.; + } + + return vec4(col, t); +} + +vec3 getSky(in vec3 ro, in vec3 rd, vec3 lp, float t){ + float sun = max(dot(rd, normalize(lp - ro)), 0.0); + float horiz = pow(1.0-max(rd.y, 0.0), 3.)*.25; + + vec3 col = mix(vec3(.25, .5, 1)*.8, vec3(.8, .75, .7), sun*.5); + col = mix(col, vec3(1, .5, .25), horiz); + + col += 0.25*vec3(1, .7, .4)*pow(sun, 5.0); + col += 0.25*vec3(1, .8, .6)*pow(sun, 64.0); + col += 0.15*vec3(1, .9, .7)*max(pow(sun, 512.0), .25); + + col = clamp(col + hash31(rd)*0.04 - 0.02, 0., 1.); + + float tt = (1000. - ro.y)/(rd.y + .2); + if(t>=FAR && tt>0.){ + vec4 cl = cloudLayers(ro + rd*tt, rd, lp, FAR*3.); + vec3 clouds = cl.xyz; + col = mix( col, vec3(1), clouds); + } + + return col; +} + +vec3 getObjectColor(vec3 p, vec3 n){ + vec3 tx = tex3D(iChannel0, p/8., n ); + vec3 gr = mix(vec3(1), vec3(.8, 1.3, .2), smoothstep(.5, 1., n.y)); + return mix(tx, tx*gr, smoothstep(.7, 1., (n.y))); +} + +vec3 doColor(in vec3 ro, in vec3 rd, in vec3 lp, float t){ + vec3 sceneCol = vec3(0); + + if(tM2MJCTXJYMG3mc)Oy%=!0omxAQ4=MPoXu0b>p@*rCB-8`IpWzjwHMN%hG!%+@XP>*^ zd>svpv{)Mrj{V)yQ~^e(CqTu7X^ZMFj4?@xuXPRlz>q z=|_+<%Oxs(wr`DSklwYO!&+M#CNoI*XEX(Y>PE?C6#5O(CVxGEsXQ4iMg@6>y^b7N zg>`T+#XBS3+v#)7rp~w8>f|htWbcMqd1)i}A8EO--6l8Y<(~BD7&l+aT7ktqFKmn| zu2ffHoBbAwr|EB@F9kiO8(%qC~7B7O02pOpEcw+WwRvO~1 zG$1U`ECD)+zI*^_D+N2&O>MmR)xb};XST^<|GQ=2YRaO~7KM4~!%z_7Qy}S@nRWkq z5FYfjAoNK<{&)jjE&K_Ika}QT^9u5Bi;R+zz;4ueP!Y~|2@$2^td<(FP{fm5X-P(T z*mV03S2lT0?8a~JhhT6p^NlpoJpBH|V{M*2WVG}*oErg?Cc+*pKDD506CXFGlZ5O_ z(|dnm==w1>r1o6SwzYiy^UEOqZC;btuktr6BW>lU0XwO+a+>d#2(w5mfVq5HqG$Om z7tp>n(ZR5+rj)EEkiU|;cMnfD9`PIFmeCCsVq|OOod3;*Gi`uzK7(G7U9&_-adTb= zZ1;=xHn!alC{qQ94#&0^F?{U$Fj-|_6bfX$R<)=93-L;YR3PT0W8O5DG~E}4(Yt@{ z90wtR+P!EA>HhxT^w&P?2UJ;mpG>wC6dAHF&)W5LK%E#>cBO_Fqsz6VnF3p$5`0-- z4bx}0Z4WeM?U3SjVvLOVjfK_)JiD_Aq;~k}qah~!`2CXwSg2nS(^@cQG2hs?Ul*0P zGBW>cwzR*;xdI^Vz(mY7w5%9sULg;k9{P$*MbRr}n zag~`lf>WTG1>nLF;nMrZ#bkBDF{7_)XHu$K`7)192B7s`jqnDCM~zkf2ZqSqG`lAq zUDy05P(`Y4DAdlp@uJX34BqNzs)=EK-6XS}z+!lf8>^aji0^aj zx(zYUuA5r7w+STb4el`ubzxcYhk`0?zy8bq9BH`&3dDNN17VL}F=82UMk4(g;T_#UM3ppfoWCox9ZFehmQo$GL ze!y~_l2s#jc&YN2AR8CaOf!z-l{lWSKsgVlPHElxzEUw**JVgp37oM&biQ9eJIAJ& zx$ldDaF-nQ3CvDF2}#Nia6N(*izp*%xoH7NL5{y-9g zijA$Cyb9ZiC_pu$^k!xqZ_PMyu}n`{>E3^QRiYtAhKhc3+i8ioGdNL7 z%kHotwLe2v<+wp%o|q%lK}Z%}E3AUQEh#%zI9hB~@N+=dW0dsaEhkGu9~K}!i;dSK z82b|b*uZ*IqsS^7d)bXx`z$RO>=GHkqZ+cdrPlNoVIhEKsIO+{mIG8GQ|0ZD;lU-Q2ZX)fi9OG7AbMNOY7 zh29<%K#a7Z6lR*`H%#vI4DJPnZ?wsBj}W(gLGdxf5yJzKR&~Yl8|47>iy8i+(V<%3 zfrFmPeq2lVl>u-d(u6iPi*RHj{Q2o|V~69Tq@M?3rDqIg*Qf*yPzK{@8*7xjLn;xM1&!N9b;&6LN~q=X3vg3 za^IY#)*-c+Wl)k4cPnFO4a2dsERuR}z9ZToq!R~5P=T-hoWh~GrVEPJPI|&9|BZg` zpXtrG;JA`H0`;384XGg2Ojq>OMfpiRLduarVw*dJO0?6@wE z#!mZU+}SF(qFc^BGEQ~};s;lF=v%_B*Z9-uy;8hOMqX@busRT#A3_C}jgXHEwgp(j zyzXlMFmEmrd@$gK8~)>eQb1_6ts(N;lg9ALm}65Vf3>HF1u+=UHk{vkr3UuQ$zA_O z4rg;M*U>LygfRxgo@)+~Uv(D{ZBrb&0`fvG0)-EW9UNHvpub!>-fm&50LBt%Qe@`* zuJq+|#QN`NUi`eV#I z@$uD>QLi4=kK;Ol($<%Clab+>V z+mA$+Bp&aQTLf(&XJqMqYA2}`&Hd5EupLU5RPWmmN2Qqpau`R@Azg5%Kq1)HXHayg zc$**sOs)K}tSgR<#&AKSnwJ%L2Ypk-)cuXLXVG)19s8E;x=}F*H7ugXXnfFciGt}z z49VB|@qu7R0LNdL=+o8g#fNX9c~NHazQCV3rz?t|KPePd)j2p0-YckfleWfA{+Kqo zDH6#u%xxAfAXEQ?*w3iH9{hMSmv@&vJVC=Rq8uQ@r`c5Rl_yY5b8Fp2O#B>$st;y~ z{(_0^f-+U4+F8&Ft;5R&Vn=4Z8>+u*U1vg=elVk`dkZ~F3C?F5#A*d)40dnT!pObP z+9Uq5cP?fw9G=X-WaET7cb%}WK1m#$W6v_ zYEqdiSHqf9gaHe?JCBy@+bX;g`C^Ruwrf=l{FU>~SGedKun!|^(Sv^1&LqQijj9A& zd`eb+XhkO)!^x6Are8dT&QsDqdF`X$YHGI*c1oFJa#inkhl8)CsOAs%srE>j1r#k_ zgqFBkpA}SE%D-4jF`UTYJoLFYAec1kvY9E%#Q7=C1C+L`Kap_rP*}o@KSf=VE@LUX z0qIZ{3p(BFeB4cCclPTqhvgJ+9fbQ($(KzfEnTwP!EDnMSr=x^>O$5=DGKH$v)@hU zcknQexbx&V9Hb*L1uexZor5uHM@v11L@>F!QnKn$U`v~8pV3CZYs>)>V(_-e&6L&i znMRo|IBDQ6KJW;SXAE6ao<`|iJkf$(%-rg-D9=d$Fq!1xC1#)W>2+JGuKlaVD(&4) z&b;-h$^D6s+t4KG-k_JCrUp2-IiaGUXzsFdmI)KYoZ+nCM(C$CtL^LbR{8m0S{>^B zfy%xU8Y~{0;#a(GJJ@#+=3i549&Rn(b7a3A z?;Apu+D$#kQS+uehU$szZ522W{f0vl^jkoc3Z&LhCLGqbIoI{;W_@$&;haPy8+0A5 zQ6aMI8lF{KYnm%vd*=HFD33Gk@9MzI#3~Pzuuyhj+H_m=PrNTOt<&wfJmfzR{Gspt z-PDpVz)@n-A0kY1zSu!9E%^k`F)+$^16t3}UKuJcJ;heeh#Yp(Gdg`!^Xmd48v|9W z&3Q(KXWygCmYt}bs~?Sx*OE?BY%+g*q|N~mKu8v>3E%9SiQ%i>n9fgEEe^kUF}ldr zF30wngTkHXe>&o;`* zp0GIli>Dq3SjBC{eI1uHDD!5fCV7W}+LL@OY;*sjx2Yz%AYd$}031>@Pz#(Qw`evj z%dUfe>+S3=e$Pw|{U&xkYm`}DXp{v)l4TXC0+kXZ?eP+Y?blm zxKe0&Av&}mqZ`}iG0fkmsZenF6OQm8#2TMNNVu^eCAA?Tym+#Z_7xB~HNF~eWWO4ZqV{hP#*qIdNu`Qs>Kn4U-i zYDUnaW%Q!VK93|KWf}ylCR-N)yASqqvgt;gaRk|Gm0#mti5~(1)#;$mDa(TV6CdwAVQaY>d zf*#D1HAkMzS~(HRGQ!5@!NOB`LXvFHABlC$Hvi;*>EH-OiLB;WxGLI_dAJ_%k+ZLX zY1>xaH`=GXml^4(s`OTUe;0IOHE@2x$fV1UB_w+CoxLpBb*-7=M*_mS*&8ftQaz3J zH~O%oQ0}}39SLcH)2WqZ5jk8>J%Lyout=-#6a8-};>01vfx@E3K>9J?efJQUd4FuL$KFYy;fQ2VWZ(rf?N*VZW1Wt+wnjmea%bY?Swhy~X z<-1$dyWvFH$qP=}>xIkIplW%fSaTs)^V%#=W`CPrIZZ~sSzFCOt$(CGUr##LP<-nc zn9N_xUW}y$lhO5zaDH^l+{(Wm1c4E=WXmqll1ii&A1Ru|60P(7v&J6mGp+knUa7FK z?b-`(LW3aV)uCp*xfzWOov-ozqO8UL>tUQaO~PjTf{}Gnf|$b; z+|*~hqn71+6f2sQY*#J%>uE%%cv9(amM|D^?rhI%8q>7-a5uYD=tVMnWW24(MUm}$ z0d>j>mtbz5=N2cM%icPf2lm~o0GDd3g0~W3+8s6u)eDN7t1_x7tYOgnA2;!EH`frM zAk)6bC2{;VzXK(6@2`K*$cR;o5l=XIz{T_3=TaX|C)0$FLW6>UF+ zM7psB0LZXci!Z2t@!?2398rf|k`QBh_N|)9UTT@|laqrJ$v%Xt=rwDdQkgU69Vl_$*s;dkQcG`@^6wmU?rZX|yiPe_u z@8G7Nk_h#M^uo#GjL0FwZw41iLaca))RfF7`gu<@cH<5YMFhW_ij6Qn7Tv6)J1N?D zhdTIe?6hvqQ+uu8PD+4W6jn$ z<5wYDXx`BdS^5v)`lqtWA_dUL=H{oSsE~+ln>h0#&6gegT&E%f-Y^<}+f^Te+1C@* zZl@?#{*(@+LoSOi0*kkHm9Fp1E_ggo=Y8PGmb&@K*d|DNze??e14tY^SqQ)@bSnecVp;%x zA~g`1__OZNiYER)- z_G~i2u#~KmMvYSsAbJ1%!rw3?xlW#|I^&4>&a&s@v)mC;=C=42GHBIHw4 zXlf~vF^0uwc~iB4i}iikisKuXI4hk~Y%iFHViU<=J-N2rQuZYfEhxnrG0y^Xs~HR~ zS?ujWh`{PU1fu*!sQXDW(E)D3%&}4zB0?YmVR}i|C9XEA%ovk`?XVz)khDk!K3lvXe@MPsSV`QI@XGge)h@tdWyj zp0+}^T$7cSN*XtoC3}B&mHILy?u^pXNBAx@;!+jVaV@k8r(`Q8ac1gC7vOBfYYoeP zb}DeJhAZCz*O4%fIhQiW>jHT~||w7r>?2}mkm9W^B)S_hs!@!2q(rS4NFG-y8R1M>c&pK^jdgqNRNx^ z;d%=GvpGZMMyJ#>44%3sBb~CPKWzO{Q;Woy(x$bbZ)6Q+O#JmFb`3qj5%@O3MsD64 zf**U9Lmgzd2x{pvY4gcno3{cvj@IfIzG+&bXi+DLl7BWLdTi3i&^%`us7=VPF(h*) zim+4DiH-6$4=8VOYSglSCzHvL$jwhH#2Kg?Id232CK$f+5I=AExRR_NDR~H5)$Vzg zkqf$Oih=%ASd3k=D$I4G?3{$GW#K{GT%=XaSI6XS#NJKP=JpBq&7NiGqphR`TcpVN zLjXITe>FIseJ>s5Uo9V2YmB9wQ$OMkKi z?v-+WnSc>-i3uTlJ^!|cuNL=M#&IfMcvWiI2cciSYSB`1tlf;f=ig;iV^h9r3%|rK zzBSuwy%M${b+ITpSH#=eqngF_Q+Y%eijjHD8Q&CI5nxv1*;y(rSJfj?Meq;YZYX-A z@7iLhJY#NA0>e3%L>W?Y-lha)UM0gGsV{q2(eOqSas?re$2CUkOi#}f0jnt{TU&!0 zhgn}$K3iE=f<(uRb}?S6T{WJTem^~giJy&@8Dctlv`qfN{!#$^El$3Lz?xV_x~(&N zr6p>BQT$8mM|r-hg8gUHB~}3M8}*@DrOw>5qDNnXv!QOvSYD}exK_&eg^XRx*Q`4{ zo5@AVI6a>`zB@hl9F51VFZ;j+gc!|b`fBCj0^bNsj9p5P6U-X}dV z-SYaL$!dlSa`1N3r^C^&7dvDnF_xY8MIuE8y?)${ZulA|Nz%Uz;ZtL^|D@T7rBZ#9 zdD1|%Z{EPoY@rOMf!XDXhs zL{3qUPI8%V=LikuJlH5aG9nig3*Zb>sE~LX`QwTDxuOhBmfp0X_#r#n9xr-9q@v)+ zjsmY`Wn^5~<0Z}KL&S_c*fIIllQx?U$49&#ZI6GU9YD0q@+eIc@isE*aRhY>bCCT) zZFf3gX;M$6G1@ltdN{p8nXBE1uV#n1x`CRB+_AL(WVNTMacz!x{J<~F2ukmTZ{O)E zrH5cZk0FN%q6!&-e0!y~vG_L;-%3QKOl3uB-o*&5*?2Uu1lU|{1Ba3K*Aw=DhMAP|I(G;k~s2$y6Wz_)%%%1RA=b~t^9uJ%lUhsnb9|3p{@6- zG6k>H46mj8hJ(YFwuD2%QOPjnmmY-8ErM&9vnA7VLl=;upl84OH{aIAX2u#%HYt;qL(|+(2F?z_5Zb;r(r}T8 zVlu1M2xg5^la<=@dDD{|tNOrxpILVMe{@)F3jIWl&NN~pxHILmp*oP`yphK0wM&&_ zCc13FObQOEwOZEuA~yMVg7LPNQ$~ENWr`(fPpvFF&JaKKIA1IzJKhIz$nxkQ|6~mg z_|d*(xX_%hrcbGh?!_KXcCM{?GU%9U&K0uZNIYn|usWq@TcqeMK-{Ab+>(_A0zG3w zf)pINI(-&PkBSue%#jF|7X2d4gBFcAdMn6^{6!-uke=SX>qgJekxSiE*H()NG@5Ja zx@}jHnbfEGG2vpB)S6a#muo_POY5X?=M{*B;~){j`RVX7FvD{xs>i6&!TlmcNG!sP zHlC__T62!5vVQv{V5Z7BcGyy^WB`C~=3~+{YySx%?+unSHYAx6MkLtius>G)Ii`v8 zfF^kBn9kDaZ=F?w~d~3{aa9TywV1 zf6spr$T=`O!TE8`fZY?NWqvkce_QLL^tF&=H}?|@2ICPzUpU{^cF&k)Ue*tYW63A* z2S?Pd3Am8EbT5%{|7sj~S%*7Yb;^UAmtyQsYL;!iUr6JplICk|sn2ff;@{Nbz`me| zw691J-7vrB?VUqQ#%SG&FIAcq%wH$!KO^>jSVc2jX9(k77YWH+fHRvJB?n#$G5ItQ z!Ll(7s7)sh8~Shvr8=IiE-LF~i3xkC4Y6l`UvG#@*ca%7pFOgUx04;gUz>u#f9k;B zhG(PZ$7qTfIc4BsQ#$r@9EH-uP{~VKLW+I!`rMY!HPGv-O7~K%y-9Qg8ppmO&%(lDKT+XEe;@gQE;u+EnVXcjZ5LE0^ycq zH3=5~JD}-q75;G{KBz8YqfVx>6mb!LZ{h|XgGaouObf5Lkw}ifEbeROM`Y4)X{~;0 zm74-&k&im{oEfLmR`<#)=NsZ*ILLt@O8)37@`ZtbmPz$ZhMEESXXINY3GSrf_xjv7 zEbeAdSdAyEz|^LTt}pr%YsPYH;+J#YWc5aGR>a#xo(R5M8-@OsIdcxD3C`31^%88u^q72WT>{=m2=CsRYSl5WD)b@XgkP z{z!e5A+^CKY=I4xqQ2tVVAboh(J`B*Gaw^UZP3H#k**(T4(;}s8AJ`)80Gd zrypX++c%&fN!;hTEW_fvU1fQiE}`^1RP0lw+4UbV@1`g+hv26U=eIddDZbeLM+RB| z-LEytkmr5Pml>2LiD?5FL?GSko-o4>L94zwp7S^GZ%>^=hHuHk0E1#;Hu?)DIDr|L#`0!e!~?Dn^wGE=Yi!EkJvU8Gg-k|GIqI3s9Tk zK`I%ku19E!f4|fG@uj>*dlnk_VaiH6dC^aJ15+E5LXe7djytt=^h=U0$!FtSwXXq# zCc1siP^>`SC#qKui~UFCcM^-)4(z`ao*S<8o6by9mO0+^EB%Y7Om*P8T68W;DwG|U z-Ri``rd<_|a(7aBPy+KbbwBKL=i&p#3Stw??&k6gt8( zHu^-Y%Dhc!T|_ESUZAMQ1P}~X0oCR;#$w22Xw#N9q)@~p#08Ec539ciH?Q-B=SV^5 zt&5irKNi;V{9TsRu#j=B1Ae8eFoz*(baS3k_oK1;9$BNgd8ytCuY+eRMY=Qfhqyk2 z)`m&K^6Y#7kfGv7Lf1*pUbx7?u>Vw4h3(*QRI2vzc6IT!ao(C^Sn>~|0&EIT7q|Q@ zk^eF9R217peq#T6b3R^bet^U!B$ zAlTqB!A2&sfPy(B`?Poeh5TWSMlM;AQ2h>-G}HoCZMQh8r*#^+t^T1Z!=_j+idNz< ztR#h_Y0>k#_StWzJ}JQzRvsN`E)p@qzqBr}`L}a@-jvC@n8AT-2KqVi<%nbx@Qb&4^=PRfnNk({iKQ%A(CxR4?^>%b#zV^r%T zEE8es&!lvm!CA_(aw|RRtCr_FFc66D$I1@Z==03?qub2<8Wo<`v>e|51DOJ}9!$M3 zZp*3r*o4q$q8kwlh+n{%_M(*XVd`>z4t;mc!FwY}vgSJ9^x2i3!{W>zU>PtuCiG|4 zL=f7;Ibstx7oi(lL71Y%(<9#pTZ&b8$xIAysch8;E-gzCwoWLDw`{fa@z&$=+6q|S zc@vOl>3Ty^`W;%CSsx*qx2&i1P8&Zu;p}ePO?j}f-!yhIkwS?gQcJRSTBn@y-DZF4 z#GqsQ*-?+mc71S_-96d-^z-ObDL2N#%J};1+pDtBN~KeaPecZbLfsFa!>=2TbQN|Y z`hR}VXv+ac?L28WBz4&<#MqVzxC`lf6($ti4MlKy??wMre5>U{wf3vGf5pp$XDnhGdK1GHMg5F3dvv_i(;1!R-cP;LOTZt!+M4Yb zwz`Ux_oJGZ(V>W-RR;gr?`GIHCjay|@(cS@71vgnX|#*?IC?`vz>O8K_3YL7pkACn zZTAg#*FTXcF}Bv{s(+#>)B-|yIELsf-ztg~vsfm}6x;q+C#jOd{<0t29M9Od@K2|o zb`2gMa%6bX%bVl76glxs$_W+Gt~q*-jadpdMTI&TrNcQNLkxy+;L;ao(!NUc4z~97 zdEl<^=e|Ac%}D5&&C|B$t_;AeejYsQ*=`ZAxOw;d(X$8Bm~83az*5--FVv&OZ%SAD zX6V^?jlos5_Y*Xu!B4iI0-drA+q5`S)Jt&hRYkWp$FpC`IDzVAvHa>KgZ+f3u3?iK zumlgXkGh&!_5{6-idK!&hb>@q>7Q>@&$iuROHZz%$ljRF=bKg=UOU=f9*YvL;9q6J zOSAoFvr@=c`kj>D)8|sz7a@Q2a{MD?ko0RsUe8Lc`SPK&;AE{uhLd#?%D#0#!Cc21 z>ng!#uXn&fxV``VMEkfwYc$=AolCe!___D|#Q!~Jt?+Q;$gbl?7ismIE2w%F*7Xbt ztq68gMZE<~7G-z#NG|mV1E&QkA@z_ryv`H&OJzc?9tQNL-=_)`0q`Wx6?t_QrgKNf z0D@4e*pstG^jtI{LXJ$cH+!yj2MTSN(I>i*4EwwLySVJEwi#=Rc0WDyvGQ}vbc)kR zv_SK9{td$M1?YX3JE^e!I5y@!x51PDH9TPPuC`~h z{l>UFtrFM>U<1AO@+62e&lA0S`%?F{pIw@=?-XoZUBSAm1l8KL`+MG|lopm%q`#VH zTg)<1VqpbA(KYHC)qbfTyisG`n|vn4Lxt0@$%l-&!3zf6Uj>=EMgVX0S#a_$&OCfn zp|ZNLl6C@|M}bo{s`qpwWla#i`o`LGu{$L2sx4Y(Hprczi#&Ml1eF^;LfRilqK( zvWRbrfsbL2WoE6%`H3ye`<`&wc?aE8^x~-g#O$Q)!a-Z27|t$A9dw%CeJbmrzbn>N z;A#cRt7-G}vV4gb0&hM=`M#4pMLOts&4|8d9pqrHzzN|6&-swJibEN?ed@MqS-&nv ze3FlTizt1fQo>KsU#T=ATo}Dybj&}!G}{1ZB0E&2z`rwE9M06XEV&q^Xoxs*G2Lq$ z`PjJ`*@v7q-}7k`eMexYWcv>q!5Z6LC{qKtD9o*`gup{ND`N)W!gc9*3HiB>1^rV8{ud0N%+CWjtV404>hlLPkm{tCD ziIL(wj{CN2TanSzLGs*U|7+fx2+=x+gl8>20-dk_1=dWIJ<$5#~MvG{@m{jBSn z5|q~}kX*`=HCaokBQ%^h<8t)N*AF0rh4nYWBPC5Ed{i3FvbG&utn?TQ#nr@hmv3Ly z9X5x2-hZl5f0?UIVHA3hTHV0FaLZ4Y;$H6Zq6o1RF!{M4n1#gBx&9aP#-w0D!Y4QC z$UOPO`vV8ALq6Ll%H2D&=y4GyiXWP7?JNCNGUB@|aVa3<!~NU|{tM#unxj zBAf9}!(tMSkZ~Iw&Ks{=FKIWf2&8oXpi0^ug03n&R|WmHc8RoS*ms_Y5?K5Stmyem zZO0@iLoYWh3P@x|4wRiTSU?8@jyc;v+8)DWa?<6Y}!ZDPR4ILf~2dbA#B^{ct#HLeV{vjqAU1(?Xk&bs9 z3A7M-GwA9bI;vHu=Pf3kz1Xqr!yAWgZAq1>!i0#^4+9+pSSl)HB28yCgvp^{`^x1t z-$YYIv|TA*xf7vem1gA19=5E2yX*sa+J~0~N}lb35nzmXw!`~Foo*|S;hw0mr7XEQ zgF##8bCH7Z$d?(_E|iVL_0q8HqBerX;BCd~b=THG3jDuT$e`hSfL9qnfrox0&^(aZ zQVubGVmO!H7iHk}HMZAjT8ZHS+xcASC`Zmqt61dvX`;o1ena=lN^Yo;D3^y)`u#a2 z)p&@w>x{u`O83Ll>Ie5pSwG_SBsZT-`q>O%!jy}Q!uU|v)zp+W+_0e1hpiXQBsw#% znJy*#oCl8TS8DD1(HiDw;qnNSO`rFG%WRrUq|nuUFCHfZz<*gm+2%F3ruxZfLkM_R z{ggi=Kmkw#_4Rh3I1onbhyG7ucUvlrpM+ZsW(hnpNeP#y3OV%eq|z7IdP8*I3kYCz zTRLGUnO&sB3yoH}PSR5T^F#e|#gkKAlb~wkXYgDbIk5O^^d35h+AloU1y$ZUw`+OY zsq9ZznYJV-oP8$6@^FCN2`O3$y1D(HI=>RJ) zs?v7nkXKaS>*~xGyE|KZWAY0FzEX-!@#b#!%YG5F1J>;$i`=HKv?p;^hV@`<;S6h1wk z^N|>*z8GHfy~nx46a%$AUeFXS9C#h$6VKXQy8c{fp8QL?G*@?{x$`oJ>GU73>$_oe zB$W@YC5z7Ky+W?yK>p$0rEl0YdGo<-j(-&Fs=YnXj&W&(cs8tr+q`kXy7ZZOElaZ} z{%05wER;sCq@WHcUd?0STMk>T+sZh1^HeA2ewG3jxgS87Q9Ah%wV#yh2tFr`M7%7G zulTQpvBZaMl(c}7TCs3Q={Ir-5BZTwur}3C{_|>*2@rbG>+w{6Oo`jUUnt9s z&$Zvw!^u3mk3{;?WWEwCs)ZHA8306X8(5Y`%oh#IJO%W)bw5|$c~-eXSwY)`bm}E{jaGnn}#21%;Q((XymyTEmu#o;K%os z;gX%@&OR4_@fgKTi+s9eJjkE8^f=5qbq|zWc*n&Y*tjEk-D72%PpMpklDu$i^O;tX zj`!njQyKGzeCqCutO6wWgsl($lWl#h>vdy2B2_9i2sI`%!2}8^3HhZgB{fp@Ro3i2(=9l> z%my2DY%FUyvr8Y>^LcYX4G!(U-g&=vYxeDFc%xRq7kZ}6B68{?zC&|r6!ft)y9Td8 zJm8Q7{mt@82>Y`2XD5Eexw3HnOp)^dIW%l_&_&R<&{OL+`I?L3vmJX_t*MfJL0kR# zjWuG3VfCM{b%V(jFO%-Rb|GSww*9Pok5CC3Ix`>&RNK;!q?Z6Nd61z6I{hH=aOU&vft6v}G zUW)D=l7fpK#W&7|Y=piPIP#D4Ak3Lz&2B4E^)LiuysbZ}O<&jLWAscSiMtJh+qOLdhk4)`GIv!Y^A?+w41-HEp8iQ`b`h?wbtODe7n9Kk2bmld z*bf|2w2~%)h|3e{iOzK)6{PRCItq9iqbg?oDvvn5#vPrnz*4^zR2~}A-3g+i*cGsV zHbCip0RcWD7x$BpGEXH^p4Y(+3-&iFUOj zd5ll1qy1I?TQjWSfGCsgb(`NvuTrYk)?-Ji#p!vq)JLU}3(fCrrn8HMV(2PUg_wq` zMGA&eer3+vCcBqKgvV8dofW35{QZbSU%*eHDwwO?mWh}@F{(Ghsw0p z^+;I#06b1V4uwwtj<_)qp*azY_H{G{VtcK%L_C?Y&V4#BIuAjU0;5ZwPAbQ~&`bqI zG4tr*?4s4DT0gc>UcYC9bhz~C@%p?o6*x%JcyjK`2vVSrgFv-3^Kk%_sj-U?3ViaR z+Lj>dxT@mK^P1?(Z;90!j@}Bx0A{$ZNViJC@4bB|t(;%)g9@cs|NAP?Csr+JdFFsF zg8n#ZM`zt{P*|}y9R5lKSRp1Z*mSh3c%V9Ko1CS7^;Ka|XMC2@7cZox*<4EOvmm*+ z)otcZ`giIWzZ~K_A-`J-D}EDY>59-pOWw^IXX0#UPQ1Y{cbgp_R0OBMBmOMjhbBZZ z`Fj*sp<~OT+sjG$M-xcQgw&2wBP6W7RfwX$y^Fn(6EB)yCsY|Fktbx&N z@|AK4Ti91YdTTtrhqE6!8qi4(MEUKkvI8Z-1)i~zf(Xlnawd^W9=WcdK>BV-Xn&2& z;GP5PP+w=iYgXswrsW}`f>-4IG4&(cemgUEMGsOLKP>{hnaAJ}Y!z)GSkwz(z3E^m28pR{h!;-XgMKB;J|scl)%8>D$A!dFE;^Lh=i`z}@KsG**3%DI;HRNsN_ z*?Ax51sBD)Eb%~i+^xv$e%wR2gEE_zFEsAN2XfUQfa;xUgfNh>xB3=O;PLzL`973~ zBP?Arnm?Ffq%yST=V||^fwjmX#l0GeqFteg+~*K^M2Srsyp@Z_FW9%AWBz;NvY3M5 zx%9DX1(`vPh6I-H81yB~%oi|);EU1|$RoF~@iNQOW|{$I_c3UR-wM+b?wc`S3s<{* z-$))N;diQdvIdlu@}#gMB6m0J%XW&ZXq0X6?#V5X)xd&-1e4l_`CgpoNy5WPh34i+ zcna{xeF`_NBl_)@s9aW^f_$Zfc=5H*7pSo2h3s zeMjM|} zKO=<9$iM8Esaod4S5ox9%8xwc-i14Em`@`a>Mu9LTCPIzHrJSVXnAkdDk|jbt>?jW zKnnybafDIuPfH`>{78!HtO^U64VOlU&GV=FED(7C=_1yJ(C-mD*&5#h=E{Q&)73Km zC&4@W+V;As5HpHjc)Cw3X9%wDTG_pHa=@PHN6;Fz_PW;{Fhk42$#j7OD+Ud0vr`pi z$NW_^iunTbM|<&C6we#*`BOtdzTja;tVFHYYT>JC=;P3E$C{U&PuFQ>c6Nb!1|`%( z-RO(b|6%gZG)s|xbu$lsqmb}R#CzFy#8}^VW*bhp?kc-D@Ch!LFQ0m}Kz)b$1(gC3 zS;myvz@#O1t^IIDRiVNnlL}6e{*m@OM#0U<7`0C9k)H>?t^?`rNO2;v?V_n(r_TqB zA{XYRO}?mTm08L=mGpDl*8K7nobq_=&5AutoM9?EVrk|T^pCWgU?xt`-o>{!-827% z5qmT<;$VKuQXF4Y%=Wk1wHg#_pMCS|K#TVHO~a#f!m?si-Kff2JZmnrN2V#l$?eBo z49EWkTn*yo-QiWrIvN``JT}g1goxmiW1LfkV?!iyLg*K)LSf8R?y+6M#`QN`h|MWR*&vCHe(yeWVguOhGoUhe^3EwYyU{wK7{=b5^K!`y2pdl z76kJ}DE{_2EWo(a3FqOdAq0=d% zZ``9N*#71V<~Ct$70?3iEv})LaSO`>K%Nzw)0OGs4P^1l zS0K7>oE8wOkp>F;83}WY0dhpX{2gsV@MJPj2xGRrT1AIV9UMmkkbY)1iczeWmiR)A z8X*ek9PXP(g%&4v`tEUa^E+T@O2Y8hH zEtQ*AfT;|zXALKpRZr%~r87UL4Wy^x{rc)1C&v%#+<9Z>0%||1xSK1jF3jMQ9ea0L zC+Jt7agdtyOwxU1wRF>{oYH$@#E~g;$45nDo%{tn-~O<{nd!0*{}ICwvGBmN)5AVh z--9r|bJk~RUcW1-XS?w{(XPe>^GRp9wx}LGB6VqZwq>=hStxqn>ZrGY@qV`VH$jx@ zK7fcW{q;$zpqpU&f{~06g^oE1#r*zyLmTW6YdCBtHW3xH$JQl$%<`I?^Drx*1Yok{c!C*GwGc4sjAWefLqd;LGWo%K^3 z%^U5J1QImCArKPWU4jz`?ry=|gFE{Mg1bA5FR-`6_2jp|J4eK(ZJZcCCeh}7WCTGA~TzW+4U zY@X86QY#=-?5ifYu*jGi!=OCSI z2iYI&B(&_YF$Y>EqfK6j-5h>Jj`oXvovG}ucbs+F~$L_Jr4~Hi3)vxA#VOuNBqzPj)E`@XGailn{N~;c`h2*`lK2Kwf z3zK;yXfVQ~+OVNkd^=LCD8*Igy}wvip(XGgSN%bH9G*>!*LY{!GuF*70@G1{b`1X~iL*Y*|YomI&O4Rhw45{tw3}jWGr0 z*uP}=GgL9m*y5G#NIp2t8-K|BwkQy0$zC>jlSY-{!7XcG#=abE0;*w{uE_ zUKpK7#M|57Va`Citnbm~Cn~TYI1_t1hW4v$i^XAJUAL@_VRo zTT*_u(qOSwrm5+*?~XGDwkU-;5$X}`esQJ0{n%9aOT@?%?`Xt%9aR6=l3N%E zy9B}h*ReJGprrq8^3G=&mV%om$j;_5=qU83zQMC1y37o?I;wiUw#FS8ZJ@h7%(mokzHjlN=u zI1uoMf+QGdb*Dqjj8H3`8r;`fYrJmsCF^=iH6wE@#b4EA>zRyPQ+Sinh$rhL7M=g_ z2TfzjQZ?k;F8=cS-$n0+73EDHW!gslaOkg*U-1jZX+l|5u)oZR3yf=?1@^@xY8|{r znPZWa?Q?8`0W!r7RSUvnb6_^ra=4nC+&{+e!nfY8*B;; zHR%%F1u_Q(B5^Pam)^`$bN~0Fm|2TXq!1mVpcv)dgo@LQx|0W1k-Nc{G>xNo(TwhQ z0Wg9*lRfzk@#QzY-QErjtmyPU806V}3%^#5hsZ(B8eqsV>D-yPU=OMfW!SN!nf`L% zEdG#-lnCv5t5SrPe`35&v5Zn+H~fAvD@o!JsIalE}cuz9G9ITp*GIBsoXSJ7Q^Ws(j?IxSU+`{$qOlNDa7f6w;nIVlcgh zj##hkMN3oAAgM~c_pkEJ-;;mS?reXM8uRn}GYat$aimDMEL&S3+w92t3Z%m*&X0+v z?HQ#wXK?K)+DA~vT!UnMT(0ACI99>5=I5;XRMKxdbDe}!hmN9t8?%=_hd!dD&J$zJ zDlFnt_mK|Ty@26m%Cj!1b=4+)cd5>ASS9m_fR;w#!ABfm8hc@mep*9#DD0y3r*_tCFd6 z_i?(_-%lEHqMcyXP$c<^7(me1WzVQzPlK&aYV5w+`*~gjY%_q z(`sO&R$R6f(-ljozNv`QUtP3Nv@uSzV24K&C&Xx)^{)zp6YtJoU+9s7AlCuV25eq< znL>#WuGxq*SWuu`Mc>ji%%W4NIJ^CGN=_k2umVu+(N__afm#n~}yxVT}1 zk-`m^n{L!D(yGsR*;Pi|L;c)VGUb;{7^g+=tX&gk%GLYb;{^0ScIOA=A~Ni|wPgmos{Hl9}Opy2NM}ZrP^OVwCNqavz0ApS;Su0AY7C-(%($ZKs6kZ|K_P#S)2U=#N?5Ymw_d)%0{B-$li1srbD?u*C?!SlZshX)`1u*&SX z*6*MsI4dV89G7;JhhqPU_qSI3oqEOjQ9@zkTUX8)&8}eK#s2lC$|8WsTdwh1cApgz?dRi0IS73r=ut>d%As2Tb96R6}zBc%rX)$Swl+*}E}l10VG!bK*UEb}cA z*@f@A<5w8gV(&8is0!%w29Cfil-agSXdS)>ZVy!q|~4?MOwPXB0v~wI+LM{n7}F7*b5mk`BUW6zy(CSmEX{ zQ_f1405zK5iFoH|TyWm~ZQ~rGC(hN@#=_yDN@qUMuk%ir2$vh)?x(y|Me-=V3Cf7+ z3WO~z>?oRx2Fw97I6NHgO?fMie&7oFwB@eCu5rqLD8Qakv^dK;o>4$)?tt>OXbaaW z-+3P0`i59Wsl;{T&Rh1qjXbGEHz8Bz^>^%-R`(_SBJpuE#ebE^c;Gdq0cC4iGt3%r z%?jd&2k7If7{2D^7p0y>qFc5de+LteWmdQy3Bt58NNkeWD}ZWCLeXswT<2GRCQETm z;t3x+a^$5sCNF`RW72Q}{uQrHaZ*eErhH(wHVjl(0E;_$66NOmKeWc+OH#w^6QM|> zQwlMXuB80LB=dY=UKAd?(#6^bPuBcW*A=xRi0Tb9{`L{H<>!GMP>3j-j}g*;2#8?A zDuh_yg{515G=%-q`kJk?O{VSpu8{pP=CdPdHdfwPOSl6t!Asuo7n1j343@(-Y$U;E zEWcyir8>^fGh-#nWFl%L^xw+rK;~=C3fD&!G&EY+Zx%%Nd?bVLLAT?Sa|Y#5E<-1g9Z*Gi({{#xV^0y`6#NA|#EB*f{( z3!d_Iy200`N(`nJNec0Z1^MfYSv`tw^G^rB-=Ngo{e`N7tI=N-nOOT-VuE|TJl@3l z8t+9}_eG=x7X&kWL>BmSO%hD~x-+4d)?ZAo7YWO$@#W@Scag5C;aX_7qy1_4$@&S& z(6s8J-qr3pdz}B$gUEWY!iL+Fc(si#StQytYpWaQRm#ALZddu_c`S{PwTV}&i*GyR z0g0sy-OngrD2|Br+0Na-9E0kkjND9>-jRSDkuHt^a!iSYvum{}ZQS63@i%?WY-p6P z3aN$3!gd^-$sy^HGh#88t}a-!8AiUO`@JBeFB9Ps6_eh}v!8)g(b@cf&rG}s@4Fm+ z)(C`S;I^x*O>Kpe)->5E)FVazy2~_0n$4vIGeYhp?OK{8Wf5f+L34umK8h z$S7zPJPGaj`skaV&RjY}1YH_5yiW37k>&>6y1HLJVMSKkF0 zC@~hUQ13xqebIf|{h2;n7zhX}6)>uw%b>G)+qnGzYTa<(~oLYz%W(!w5ow?}ei2h4>BZQUNk;dxM4_Mfcg&2g@_juu2f zT(F|^A9WOPvSrm({W?3y(9$$9;v+J#67(q zJhWIW_p?Gbze<{a2R-2QTB1rR^kB-B{7CoB=FCSaKLRniQ=m%*q-^Zr= zR{Rvt?-0DGh&~t|_2n~4BQ}V^no7|>UOB}hFZ^rgDj%xBSBfNLc*%65TZgP|E6a=;$k8IFs&#tI&y(vGm?WiGx(tX>X8sC#hNe9f4-dij1pQn zrKW=rHr?L4D{AA{es9shX+9!JF%}`nkb1lT;WL*em6Vsj5YhbbU5lZ+hs|Gf_9^dj zuP3`)o0H09n$_IhD`)m->BiG&LhSrj#u`x9u<3p7-#d66Fo&~vU3I!iT8aoURh*8d zz{6BebIdgs|L<(?1GAac#h(R@+v?U{06D#B8gnc~Nxc5||6ZS2;w#X&7vO*AH66o;b3 z7`O(&{T|mZ?zB%=B=+=0e&Q{f2J@$TL0(O+6XUQ7C75IU2lxMu=1aZ^=Z+AtC0`A- zW@H44dU6@CQSxLDEFMw?VIgX3YP;q@fk#TW5wJ9E&tM!yOXMv3!zdC4NJ?k7^?!>j zz8BiO61E*P#``+QQs&?GjTc7lVbF~gti|(V6CV~@A?=1YJX_y&AO4%s;`pbMgCPMU z5SE~eOj=V_rX<_0VXybZrB(bd@j;{B#UUg+?_9b!k_yOR&op`Di&49C{<$=da;7rb z_pj_{8D6dpXWiZ0zw?oZ^IG8*o(h}BF;0e^6jzysA3~e-7efA>FQ)#%RsCMc_PL5* zNTsL)_Bzx0?AC&SDj0LLe6c-T`TVb`$cOd4ef`Ee_~KaL%HPb8H44F9HuZ;zClSKs z)OT6F38j|V0KOndkb6|L)#hSzQzzYWOR)Wuz9P3nbGL>py8^4~Nn$&#-j{RYQR3$4 zVn()A%&l^v-_IzgJKx!CWpq71qNX_2;x|GwHDq%4y(~0r*O-(dPE7%^r$E7|!{9-8 zmBaVt2#-^QiQo!6(nHapPr<+b!@P+rGgk1qO^u1I!hqN|bX6Dr?&8lgisn^f=ONm9 zUiFil5?EdBTIlzuQnPMSbghS_Z)&Wz|Jb$cQg4FOGAY5YV`?%pq=0Qum~K;;OgoN} zmeoJKAffhp`_4+W_`Pcvk024bQA*y|xnOU@>bN`cBUgcTNkm@So(a$~dWu@bfNjO& z*8!@T9YSA2v%#}g`Usz(tgfxINxgXg)4M*&a<3k{Z@w3@7y=NlCy-G36k4`+77g?W z#N55v48-?$vzW6g!Y0nyaQge^)v&H2J$Y5~W@h6Nve>YG(;<+J5^F8s-|sM0w@g}~ z#A3X+kaF6&?ZsiNami98r*)-v9ouU&xnCd6B0*QHH~4%<`7%UqPpQ1B70p!LL9THC zxz;IpvOkKA#cVlRaW)k-POyreLVFl=N%iMlOHuljP)M4Rk~x64G7TOiA`zOsUnTjRqwfYMsXdYc#jssr#5X(ErG3h z%&nE{NX0l&$-kznwb$u#IQ|({ES)DEMTsB*42X%aA%8JF)vtO8QnI~ucEPTiVdjZ3 zTzN)mdyANHtk=-HVf}CxBXK5;3Dv@JCq6yqwLk95|5G)`88XCI?jyGco!uK|_L>@F zH=n|27@F@-lMo~yYuAw|_ps|I%0g0)Rt$CjQh_7n=#@_isq%=EIO~Pug9q-i;8z)k zurb_2m8F!l$u((V_sRG+r{o)wlp}L%RA2#`FrJ#3uz2w1ShFl=Q-)$Y{l0&G4V5~w z6+dU<*uxI8KS|l@A1yilXgYEz$6h`3btC2I+MJEQR7I|*48kg>LNBQNJv@Fu^vTmW z3;4w6m_fi%{jI_<0}-eUA*oS3=ZKCit~wBP_15M1sJgnmPw8cFRdPm8-n1M_@;b}`iCM6-gf&-_l22EIxBqLXJ>^@|5nzI$%}Ktrf7IN{P` zF0qWmOimo;CeZuLctT{4m01kz-rKPnU1A7cEXOX?23<801Z&1=6p9~7h5o(y_K`b& zD0tw7&Xb(5*gtcPRwvc+4yQoi|mTkTO%F}T)OKPB|7w-Q~K)fqAM6gPP+VzB7d{`JK{HITu@G+=A(LZ z(TIx2Ra-`F?Nqw6lSia`*SFuB0B6)UChHc$zVo0x!tU&2(!|jXOphR5 zQqi&w3Z6;Tl~tG#PoZA9cbt*D1r)TprR*mrBZhT=cUp&G=&v3?3vRlj1MwQc4ZGJE z_$_y)oq*r?#*8V+hxO_$J6$<`=iQT~dAe~neF4_*OQ0JQbt3 z?_YqfoSN9h5Kv?GDCh0J1&Y}5(DZ;PLk9_*H$$bD8Vle3+vnGT%ZP^9XM zv6?VToD%MkT1!>xKxBDzEwlj`=78z0c;?W;_gX#jps6&v1dO7#B=&Rj3s7bwX3a*P zp7@5f{53TNM^OxL#>0`r8*S;08m2@}{2y2R`TBL4pm#6@5wWjwAkLWlTLi9JDb`Y` z%h4pQ-^YB1B+3eWQU*MN?`S4l-~`0`18T)Lh&LjXYz-K5voZ_`fVhTG@61h#;^Ir5 zx4TVLkz~WVXtgwm0DgWviYhm^=f0IO+Lt8#d+b{#gOur| z^QuU5;8x^tk2Id9J7!7T{VOJ-%NxNTX6ChfbOth7 zQ;&DPtmv?D)~!{Wiv; zb3L5B9Nm|a2sDin+l<7QRLqwvCy{EgkNf(RXG5c_jWOY5P8q4O!5jUKAGKalCQU`P zezOwTTK3>yCUy(MJ1L<4QTp*P=9MfLh8oLjac>5S-;=x67yjY-wPhl2opXo3lmzqQB#>$)6_G;DeR!d9i+!=t-WPM3?HE zDp6J7ZnfXhZd)ni<7$#%dc~WlA&#^EN#+I%(9!rXM?Jcrq=|ChC4|K~Go4*Si79vP zHf5Ljt0($pnWQ|%VDt!18fs8qvtu0gxA_=G-RqUx^8hS+9rOy)TVv8Y6mcDQRrR-s z$SGe#hl)U1A;HTcf6=uHRlnWRK4s^Ye*!<1|SO zmxJDVt)?}u1U@8F?HQGtDr{Fjf-kfo5An%{OE{O5LzN*Eb^@)3Sy{nM+ zsf&u*75YfoC&M8n$f>;Fv1m9&I{)d)tFBdV_*7Krq-*nIb=Tpghk8YZv?1p>ui^BL z9dSDbWBcAgf`{T=lmI#JAYs+3nc^2lIw^E*DtHU(B2*;3853);ba0NGe@0QC7o%1L zXqZ4?kdn+G-K!lH4!^CiNq6OhQPcsKy^&1*Ga5HeRO^Cp`b}6TQ@e z`1{T2Vbu9Pi`~Zat3!fQUMIR>bs)JEAEfjdh0`dCR6DOfB74;DVJz`X>Gi4Y~{DI_5yxL}}r53>1o!iEPtQ((~ z^_QMAhpHhxhwHpA=9n7Go zI#|$9hSQ;#)~dXcTjze32UO8`Chsolu{-S<<;eyP1Lx+8kAm$fl)akyO?RV=_9(ZN zW;_s=Jr$U0!O&7jN8vQ}!|o$NLK?n6KtRb*-(Rbz0LD_%byJcrUAlY->JH5RJ`=yY zN*=t9aN*qh8GnGreAxnBSudTWS|z9guNDQ}<`mEN z447pUgINRj_64^gYa)BypqwjszAP&5xXvfkEpj{XCd9RoES!t=zz9!mZBebeAeAh> z%4yupYkQ@f`dy!LzvtFo-e=%gken{`%(t!sNRYDdu5)D>O!|zn1%q2%ozOm`q#tB5 zMy$z#=a#UM->$Kt-? zN^5G1;xaCKR%Br>bgR;n(o+n6h8xg9U%QU-pLdMJqp} z6gfYm)JX#j3XSyQ#NvJ09tm7U6RDHlUa0%qLELHKcirwD^ckXoAMYCv2tN=i1!FYB zg^Ie1(#C`UaW55-8FIHrEvNXL4qH_p|Mbi(OxuKo71CS0DA%k)=&~|_Ww6vskFEF< zC+s}GkRLEzcvs7J9W9l^MPJZETP)6^|B#;)ZmWvao6~Wh&n2tR^Z(W;od=|-X z-&YZPMw!R!A58U!)=(qVv?iFYTFZ~q6Xg8UE%&{J=X`4tY|9j`Ih})LDoR!F>L0mo z)f;b9Q5@gN^%=}Z2HF*!3C8v?@5#@Bn%8zcsTUskR7laQIH8_2^!gXCswcd2NC>K} zx3q!GimSxTDFR~-vD=5?zEmtJoloI*R7{8j9)D4Of^(g26HYTlQ>x=_VV;(+QENR~ zp8i^(>ajFWZwbf0D`s*=La_CDhYXP@v0$Hh&Z-OcD4ku=-`a)IIB;jRxRNloz42L9 zWDtwRBR37E8FOHANZ=;A);kQ2!zVYsEMh87CAh0&5aHOMTNmq?u6Ga>c^)Ow_Xae7 zt|@`c;(}dk#KXV5ctR;#pGWHUprwdvNwSp*=xjdd3O4Bqvby$p)6tzJqm;JvbgDNu zy5~x7F!NAoPSo{^w@66vr*e-efAxg?9x8&{g}I;n@o{$2LP36$d{V(uOb~*QhK&-( z@9q0Nql889Q)(=L!^!|d;k94B!qqUiF5_K=qk5w7i}J0rc*WScHRMW}f&pZI*7v@M zK1npa$#K31z}umXa}}iEob~$^d{^A>7N%*mI8+C)ax+qY{C5W3((Z9-v*!Pd8*7En zn;n9`*b$k4Xnp!EN!EOh`#_1AAO7zCra$xkyRTtm(^%5OA)e6kjKUCbGBc4XobI>q zl;0loqAi7Ue;RjqFo?_cC#d&TF)JQm@(qff?tODqoFA}zJB+9bqdhGh+cGu;}N zV-_8CX?!KAD28)|F77?@(H(uaI^@2TM&g%;OSXvd*d$2SCxEI)@ggXm7@Ztr=DJJn z{Wj-jd6X-5ckdtzAeY>1tRaMqN8!4Ma_?8nyUkbCnS(w_g@Rwh!J-V!yaV`{*)#aTQ=8 z&KH*mJ5(hI*|F^}!qK&*IW#lMml0(DccZ+v zo&dLLCnwoQ_tN*<8q2^Xkg%~-G&^t;%41TR4K9lA*?v?j=96Kl7DJU7UcvDJd0zu| zd_OHy4@BSA5JOl61nv-8d~4mPWrf>fHuVSnqC>8B z+ev*U37vR2IEIa>cZmhJF}F!oCDCCxbUlaTQ}@;o+(dlSQB`hr(H?qnm{&4+i+T1B zMrHNDZbvqO2I&)XiVAsQpa75M%iR)&e9L~`SzbGc%X_uV0www?XSK)Uu6OU@KrPpq zOx&V*k2U`vL#zI9x^0U-r(}tR9pCWJipeG#f%Td87JTDJ`KDPqj1=6$3L4-t^nG;_ zK7TWVs#&MY>QKV^UrzHG^z+;=f`OWWMSM~D;~U%$SS!3Mmj$Uw^TFya@oX`r6Fb)r zo3d7%>oAYRj>s#RYkwTicT!pulC#nrd5|@%2Ex!@UvR7vB*O3zTjZb&DFv)BjNgpx z2Qfmtumt4Mwfm*t!Q@0V4AD&lZnJrIp~v=0g|8(p7p!Ilg~upfXdsU&;GVM*0Ex z_*Er!E2sz&Nh0F^ByWkbX#zV2A?GdikobrnE*0>22vD? zxp3|`M`!B>33U{CVrZlQepD^K$i9v(D^&c+M|KgD<=V%hr}wo9DGF?RgMP| zOTKcr=cPz%wHeI&@G0}spSs9T=m-r#PvU^OXlC`_dD+q~Ut#CHBN8#{i+Kqc6>=r- zt>5valjgj*+qwZX3(||rt`&cZs&~l}p7x_leOqcA|J|!2X>uRF6ciGXCt-hMmYn9k zQ|87`4U5I_*1v5ebm*E`3|2qR8$boP75y*0`B8edVZ=7;6i(_rSU z`V$V}*?_S|zg;}iPhX0(qIt^nzW!`3)U zl=ai>gAAazT$8tO$>6qYSIp2fknTOs07G-FRO)Gse?Abcq_ZDJe8m6|O}w3^tnvHD zXT`WO32k~$Qc6YL^3sd{GOR}}K9cI4bYa<(`(+eMoer?&TgbwTU?Mnvn*|)#FFF9X z%cu3Gvix{oMI(skv6^(XseRB^Z(mx|w7M{*u$18K9tYE+|0b(+Os>ex(ED}@sE>T1TJ25EJgpjA< zkNZbn|DzTnT3#Ln?yg&nQT>>DkkT z&=CR86(_8;UZ;UeqtsO^!`hLE=KZ_QxRaVH>ggKqIr!mQ)K3b3+MfPpYp5FBH9Dp8 z9OU;3iCcuqt;wf3l3NlNG?!}r8>3)VYYest6U5z=oliwi`89dBHuC1Q)b}aI`+(sf z$V7XNaft6Ml4NGy^%mlWh(TeJ$*O7(Sy@^{wz%X_65%xCNH7~amgCy=3hCMSYO!~h z93#X$$HEO;Ku5(sIRi-W;=oQvfsNY1S<*t&UDy4!gn%=(>zX4{^cf}V5dRq^hN)1t zr%{&$fzbHY_Q#OYZwhu#D%9iVPQaV#@QV=i8#vDSv1yK%xSicHc3f?*>Zb1*1rTpL zD5*a|6@cGBe_1pONXlZ@s{gW}2!eqRXHIG~u!I(iHM87qG}qb<^Ei3`Ygzs^TPxD^ zwanbOk$&iNI>qFOkHrKbS9Z6|TO0lXytL;h~|`X~=@BBXUOzSdy>HR7RcCY!vl5 zLL$GPC%JhTJL*lYd>n@MEJRx!a59n4{?hiy{~3Mcpt1Wx3Dy)=DzX|ghx~mA=POnG zA+x1}KbnW_cLpw9F3nmg3oX2s-}iL37-WJwHo~=_73%lPKeebHc*%8EzO7zA|6a>@y zQzw>?^>pO-%gtPEehvQb_g>Lz_c=7j1kz!ZUAuFNTWzlf`;d%7>n*7C?&S7^7T74P z1ADlwv!!>;Sd$)2SCD4RhJyZlpDKVol4M7NeobCH?__+nWU0ulMxqY7V=k&h26 zcyygMHX+XYtXq%P79d6S4drXfbIAQJ3HBl|$N*cmcRsCG^_B6;ajqVM*8WgY!@gjd)N3r-<6&fn0 zpj&)6%(32?k(P#wznvPq4G^5F;_FtX)blF)# z6qt|kVXdc?(WO|}Z6BOBlC$n);zw$fo51jl;-KIW72JEL=V+KIjFov7w`hD_MC163 zGCj0;kx2Q4_GA?5@r*K=xe)5s%TlW>fn-fM){MAiBdmmHJfmE+n3kRtpi5}y{A>G0 zZMP!}vKYH~W8D_Ui}`o3DwwVK6aw&k`f;a*k`RH$M7^V3%c&(dYJBqs@YA!*+z4n_ z&rz&Trd3G&pb##uu5T^t@UZFhqfKdDbdZRs{1T$Eg=sl|P9bJLYNag%D7HuVa+>eE zpgmpM?CB4VK^9RZW*dkyVygAMrfN!ZO;PMFk z43d1QLF;!7so`vhv<~Z~BO5qtRMV)=KHRt_2Vs8tnMIW%{SSaZGwgF13=AAP%~2?X z%8x^-#7z|*39rWb#bn{rSeeG|i)o8$??vZcjsPw&=BJkaA3LK?kK4*>p&XyJMPxM#>bzL;*L6KX*-#+YU>yO1@jyc?trtO z0<>=5fVYQUKm|_BLZ*=+HzF`C(khkJL_Jh1}JZ@+Eu?5t}!x& z9MhwTp0bZ)Zc-5U zq%^B9=yI3mRr>Q%_-*deTe*R6y+a|Q5<2JBnE`wv!wUt`!cjaMq#B1ARSS z9iHdUpljJFP8jK#QW5ls(+kVQdquapPIk;t^WSHR9n2cu8+k4%Z=q!#6=#Po+B|5LB- zJ2ai?`^0KO+l~2Jin0+h8LOVdUFCv^^H0q0Tu%U#X~9*Bhkhh-=5sZcKNM>t=RKP? z)5_^8+p?pH&0YV#cK<0j{Po;vxV*ixZK3C(QS#bP!MkPvJ2Hl%^kblc`1^mp_q==eSU&8}D9~?8^kiVu4%EkNm79IY--cd69nQpNyJ^SAD#9C(=e~l6`lSw%K7En$IgRfZEn2>UE>7|&j_lU*}>F8ArXAT z_W3xOlFe8o<8@Z%ic%zMCmfl6nR`pWKS%077yT+=x zNcE=%zh9KRp$|`-o*A)&?iCM9Y{t67JTxryxaYeM&0aM3^VrvaM7bsYw(bns0&)QN zr(K3}an`Cj>g%>9xhNXx(BLR8LNaKIKBthMT)9#KSQP0Wu*>SgCdxkl{I8IFqT1 z<5!0XR9qe6*37G|HAQkDJW%5)xI||lDTHU+Z#OkQD?=2T?ONy8DurrjiVIl^?yR_@ zGxzYQx{LlvL5;_%aG~8!>s6PZ>xHANOSf=LHvNgx)|#qAdpsmG|BQ$e?M~gD^>v$m z{+-l!IE@1Y^D0HVxUxYPGz^6lLY^>_m0;-2Np#l90Y$g|zI|=OVx*4X(q>ePNUY@agBE^%e@uxL zgvtS>outPCT_-H^H8J)r#F?I~<6lhu@N^7H6k^A)7Cd)wjJNIm6AZj&wU#J!j~>W~ zr`-pwA>gG^KVtyOJ?r8hp|ZwYqga*?adzt>!B6zHm$hSx3ueIDFOe&xKs4l&(IvYZ z$cJ#DfS?=r&AVn@!cb%(9p0|Fk5`nmco3;m*fGP17qMz;5cSeXu&H>9D&>h5?o>~9nFDezhFiRBR zz^-~i$|;dOvwUhFD(E)TsG_Ynqhot%D|j6Z0n@$ftqIi}X+xguy65nGxx>xK^@#o% zuot+3Ird_s1~d)@3PJ{6Z;`3-enMC1u(hUAOH`XdggWJ6c-P73>=|kH2WrZlZ2ckR zvwcS40gT(j-sBr!1ixy^kRxkcsp;tu7SW1J9l$Ka}wi7>@nF77JIvRU~;0q!Lk8U!!&TY`bE zNc!b@91}3yvbtgHGhR^0evb>i_^pIutZJzA8kbl`ID{#-NtGHr&ZnJb6C@*T_;bb$ zK4ob-BYt;?FM#*NTnXb?^HJCQYo~(^dgz>L9)Z{YcpwTF)cOxS>}AGJ2Qgkg^lSF8 zBguh^+Fm1Fm-&fIZD*38F1bVgC?Uk99q1XQCo2%YJW@Y`wJyuze!&*>g)h-xFS>{4 zt@^hD{$E=28Rt)iQy-c7Gf#4Iy96pV)-z-EhSi|rfZhqp+B7N|=AOx+iEDY@f0b;R zR_z1S5>>k$$42WM^joczxIdp!{3v&fF5uM|J+}_6{qzr|-dl&=XYU#4x;M+2=`4}# z971v$+sucUzpqo}^1?`SY+HYx)0P2U87CFyq+XkXz3j9*Z?--yAf~eERj|)zusOYpx0jx#!&_RGY^_V-$+B8~@(5ww4x@5-1fJ#3-d>QLa{!D~Le zvY75)0!tcD@z?)(st8LY8f2jc>WmeuFduvi^n4(9GA*$N(z>255)+F+)2frV&qSBD5kiM%bj4TP{MN7_Pul>QAj`wL-KpX9hWXCzf?(;?&CFS4@bTdP%R_q zL^bLGftxN(7iia3Gi)kx45!yFLe4uC?Jak4R1RTbg0@&0-JHiAk+}Yi*QD7-)pML} z!l_Q!CT{kMRx>`grqhtQ3Q>uv zfR8)Q-~XJKsQw@7&hjm)?`z{IA_6LkbP7n9bkER8cb9ZGNDn0e!(okMph zHFOO%!+;OZfARaiJJ)`Bu6@p4`(F3`S=bYkcB}`a5#p-oQxJFbjM}@)Y=-1?vCdhB zW0TkY{J9VLa8G&Y0T>Db3+BCoVn1c!Nl?TKe84@L^?dFMLe@8bxggDY**4pY|pSMaJ4DJC1A8!-_ zs7KZ~Xii!tt_wVQvOb7Y3sR_-vEFc_%2@%$*`j~%eW7V;=)p| z;P^INlei0KQYr&+_B5i(^0+!(Pu8iBqO2G`Bol^Y(;8WobOTGaXFyJf=D zDQqaq2MV4@?i}>3&Y;c;T2C-#OZE?s7K%Hi^y6de#3@kgH=J*vW_IpPSediEc!b8h z0viA)V^-uBQyMPG+?5dIEx@~#JIVI)y|%jt?N=;^BKgy}zs?c6mz3la;T;4kS}EW> zj;ky4Y=1y~u5`LjkSv^jG77ae4j+4w!>hDo-H^f6Q>sLEK`U3YI)tOu6yqxU^+mxd zmgb9nx7;B4UjlFKe)st3#fPsPqCRHOAjH|}FU*peEkLmzk;}utUI;ckC;!R$c8<%K zOIgZ;91Em2cyfpMSt+IKv>W@n=>rmRN5iw1bmL{^%CAbpv|zkK|DMxzjHHxh;nhCk zoblR#{zveer;nr|=+eG2WS>xb?sVr{IjYQX&YGo(g`RUlP|=V(UwJ1AAC?OIL+zzv z_+47j_tUyOhn(?ztMt?yZc4D#{yvD3&g6iXB~$wly*wDUEA;@3a~g3shf6Nkr%CM5 zfdkk3SH4l1sm%Fd5A^@PkYvxL3ekA{x2gH7fwvjjRx%c_Dc|YX#rHQYR+6xo9-D^< zJ@lC1l<)<#3|2S!jb|^Sz@?WkYLFSzOptS$WbV^`cJ2U$`5n)>3BBFy#ZTlmEh1^S zsn@Tq{c-Px`%E`Ew$`o?2dyku*i0TGn)JIB2;jLn@tETIb6C~T#w-cjaC5`Rde7NE z3~{`S54r~OGaMvqe%&x4f2I1TkDVIt>Hfj7mUjD{#n#AHKqZK{l1*)cLP7slpb+-XCyTDeG5?2-U3Z5DR8)eEzvKMc#pOSYd|}Fb zm$K&-KlD+6v80HQ2g-^(!1`l-)e?2<*T@~hW<+$cW>BMZnd$YB&A61t#xy3sLuP6V z%KI4{Kl<=_ISuw&(cTmPTnTnXvW_~!)*gjj7|eMp`gmo%JN&*B_zz?FzDvQ@pX}@L z=91jQJ3AJavr4O<>#+`o$1t1PV+2C*ufClh$LK2}f}N56BoJ^WV$^`&SXu7w>#rHF z5keoPe6!M5qi=1ab~P^0-IAYTv3SC`xakJMb-#Jym^^6ZoJi(89k97mq(cGFQO z3_HOmBrQ(xZF(QaEUWbHlTWuvWdXJ3cL!ZXQZLB~%3w4kqIxpSlD_`Mr<^7?kvVf; zmF~_W99_zAI0}t+wIlo(Fyr>dmku~SoublUYA8lkhn6S?@{go`HuWY7FMiZAt#8N% zwvJ}5Tkmnnz8XU&mlCq#Swy)(5npEV$r z`1Qtk8KD*()#726leJ1==FgEPF=Od1Elk)c^#=!j;bg+M~aiJUgFs9 z42djy>F|n()eBS>9hWexwJW`#Ce0$T-0`*G^tJT|mb(ONs(GHwS!UOJD(X86J+@g& zGxf#&AE_)QRr?0qx?i(YfML8p0)AoZ?m&%CbTmhcJ>Lx?kxuR5(JrC z{61_bf^(_LjT!G%7(@9os(NPOQ#s9~bOSm4A~)|W`KY@?%l7@F+g6XRXbgVW$o)!? zHO~IErteoH1uzR$80UDjN3xoeKk=avTak142*rpg8+)!kcmK}dq~4r8EBF{%v7J}R z*P%B-aY@Cv5#M=)KvM7}d|dGFk`th|X#(|DKb?J0#CtRL596ub>r>H-ptx#Q%+Gl^ z()vv$iMBbna3hffvVd}^qqWHk;i>blE?{llM(cAkDwn=jT9FGV~ZLHO_8Y*E+VGZrFM9+Cn zkf6#2WHjygoS)x`oLA5^34xC zN4Y3dyoB+~;6ZZ*+1lPq;R6(`=ZclOe9>iONgK{p+AjIUW2f9(b5T3a{o^~mtY!V* z{pk>z3ans18lhJvGCvU02ku`)w!_+!UNrUpk{TAVthvS5odukGnaoj-*UoL~Fv6BD z8`r*Ez;TGb2=PSZ%gqgm9gkkC!bR&`<;b|?q*dN}O|7Q20%f!lc%g3+w4m<1kf5)b z2yflAYCn!UBXVVFVWvehOO*5FlW^Z$Fz1rlkIS`CCMArubsaTeb5v-vpkPLRp$X3r zr(O%=h4bo}j_l-?7=_F~jPmcccbRB8W$~=!oMZE4JYkK$(*)y_?@<}B7MYTP6LKGP zrj?q!gp0@g@bpaVC5Bbkv_0;j-u!(9n2@`zd-5?M@{vzV{N00VVUO^gmlx#987M6D z+t2));l1SjytSvDaW!8S##EBJQ9n2(5`X5r88XiE4};|OW=$A_lj@zl~$XGVSmT) zra=VH9Ug=9Jdzgp_B0b2@;lj9U28aYcN2DgA;LD7?67Bo25Inr@1id6v``4PnqEpt zS1am=lsd4`Z(ovo&Ak(mX8NG5zRFT?oH4?8j)yCy&g1^pUI=#DiP|PWJp3 z|8~!QYdG~+&$}{wZS4(p?@wmRr)r!(DTvI;Y8&gwY`xtT&Eh3gdg(PWhR8oK4fUns zsu8|&Wg08VN|}n%o&o0-A!d_%Zc=LbO=d^rB&7Pv_U;vZFHuoDBurG37mN96pRz+} z=a#E@EylA{igoP#DmZ%I&IG>srK4UdbRU)bN~bn0z2s%UlM}h|No(z@iSjHi_&*E}4}j3ATO`8rO-Sy49M~POUlcRXV?{+Awp3B!tFh^{rUTCp$gtKTa(PrftfV<tT_vk)n z-#?5wt|*k9&-n=BwW~^G7dSwzhR4zj3c5eKd~n?|T3X7;>SQDGrlEEPypF(B4m<&C z@gHJ!s44%${RRn|^y1=@n7St$wpgJ(zgtN&r_ z?-)Z41nDxe52^WIrdB!?;!G9^>bZ)K`uRZBn{rh3Mto%OpwLf-Y5khw(v|A6JiR^a zapga&()V7D_|tM;h)O7lFquCQ3%qMOgl?sH-+RKgUtG7#uP!ADk_%H^@|hXZHh2q2yF8*?e0sIKz|RLSgo&Au*IE?V2Zs_dc(?6(kiO-@ zN>+)}R)UGIw~!dIkA-r1P|Y#`jGPUI+gb6!naWw7(cFU0fM!RRrXIn&1fsRh7))z3 zC!DlN_5DUf{ft>D*kZ`Ae>V*3QI($s-CENm&IiOkDqn3jqulebQ4&p|1y`;5apgt> zd|Z+Q;)%}!U+Ng2C>`iPnJ<|H!&92si%vjaodY;NUOEuFm$h~u&@7ejxV4JgTp?Fy zd83t5^!!mnkP{Zj4HtX8#prF$+%t~;6ys1;R0Aqt;tEiM(olm%sg(kusjlVsdeg({ zi$$829p0Ma)|aURH5s2om;y5a`yVH^3cc*Erw3mCJ}ficZy~%?)DE02mkkC!s@q=@ zq-TG}6P#W}h>r@bXQjt9Y!TN7POMQ{UQUbHy&&mdA#E zJ+~LpmmG@OxMjZKjTxNe#0KIT=t2ky9AMd0SWHadPL9pqNodPslRH;ULaXkiVl(OC|qPXoFR) z5mirzc`tvf9_=wKPi1iSMP{ZbE{yp*m40%YXGjR8_HrWC0DfZg)Y>!HDtRUMWpCm3f=f0+tYI)}F%W8Y4r#IHQS2(O1scm@m zVeo{lNIzWoz_+{i%T!<)s5D+H@gGJ#AX2Fq1V{{JXEFmidsSX!wRZTc>>miz$Rfox zSi+G3USIs0Jd^Ge2zjA`5KyDPOIQ|lOg5Zb-+mpGS;>-Zf^NXe{^gqfb78yK0>hwu zwq3Ud`NFRobq}28$^6yX-(;$yHlFFawZER@lPi=u@od6~I@k*lSF-*XRDYoPsHn6) ze$R0YB5Uqczeu8dZIllIFzu{KL^$qx2T3`?Vb9*JNz}W5CqttaXDc<$1K^Lhoy{f9 zaLAl{=u8H?xNV9s%e?0Bo{zk}FrfQcx$RiAWnfplw<#I?SI5TlW3!mX+|<9e5Zx!Z zR<0>uK2)u?rm~NbJ1p54re2E0Pf!vys}eA-5dXL^t2ob=r566La1BP0j@7^GS%9=X z`>*^URy6=OFWZK%EP?}N^)-4{HTUb#t0=c1vhgi(hi(cK{g4`+eChqn@wC5=N3$$^t6TRb@heE((+Y9@8v29rKv$19AIbrpn{3EA{KdcDgh%{= zOxeNBkS~8PTw*f+PJO%;r|o?(yEgaQ9xE(U(-=;2@vI#Z%$5sbW2V;xs?TN-y9nA1 zk-mSa7oALyMzgTRvcZ#@)#|5I<|vPyDVKFMjwGFYR_`-Dcs4h*%DX#Zp-8{6^)U1QT#k@}*q#W3g`wv69B(QjLn~JC0wjxCu zkeJS&{Rg_k%k=8(AwwkB|6wA=FS3Jrud?Qv*yv;(U!Sz2#@{?^y(xEP^Rn}!(!Swa zY00hwf-27#=p+@o(3<@vSjey(aMgT^zxAQwqL@2eJ8=~62S$4y*=8S6ik|y(wlWs= zrg8XR*C0PkB^tTH@x!qvYUOX@sA~)h<0G|pKHw@`N-s45m#D;USa0%xBWz+y(SsV} zX>ssocEQb=(j%7Z+8^{)uy7nJ@>ew6mq)X%L;Cs1O!OC~I%Zm)a~j1#z6ZNIFly%= z;c#b_qrI;}ofCQnU7KPt=NMQJYnY^)yF%+FSMC0XEs4#MNKVzD5x-a6)BPXD+Q3i! ziRi~PHzwnfDUB`cV?m7Y*g;js!`bWF_+j-jF+z_XZt780Epm5j5_S|ezM!E9?pBss@S629ZXz$k!s@i)M;Xk zIi@%@A9dv8Bm;^m+Kfd?hUY#b`NP$-jq%7KJ$d5rX~hik~&^Kh-<_& zW?ji1H7TZHg;c&c3mgVdy_@SfR1goG{$@WXP}l;iIM~2CxOJXn(L7tHOuUs9!IBYcDR<-$SURnllU&Pyk}Kid$y0lx_Bfe+?)|WPuO&oJ#LH_X=lX-WgBS+ED+@Yvg!@$;W(2| zyQVH`3yQ7wO(W;28C1+Y{p|AP$0TUOLe&pJli$xbV_!Oh5ARhyIdZW0%6Md93#wW{ zosIzN%a0)MkAt+PC%ppTF|s4pah_XtOT|bpkZBO7u}8Y`QNcXrA4hg)WnnFZdrn2M z7AjI8ri}%XkIu?*+>_Y=rg&&i{N-MnG9b8nR|-E;i-G_ZK-D>U>qTpR!p3WTyioSV z!?a;8b9+EDu{s$FgFbKj8nY07jIPkOxKr?|C@{4xJNP??U*U%QJuxT{``|P+>Qh?u zvU3g{U*xg8YDKjV=+q_XHPoJU8A zw+TyQb-EGXzE%Oq+b154aie3}xj^-`Uj+K8F*#4Gb5a;CY=YJ9hg;CHpZy zrWPY16EO|E|1bvPJT_(LN>kZ19}}QanVWONrdU%NDc-r*aVI1Fy~8U;l)dp4fRx=PoVixU6L>hW-DRUkV13!VlGeT9}e>&MAM2)@*1HQrB14#MtO z=n4HqEAlM?>G1rKBZ#jL1YRS~!6%&}XE7`Ol&;f3v^kI5mHbGmj?Jm3ZTu#@XJd~$Ds9b z_lF33`p%#P41>`BFwDZ}o;jgM?@O=6&Eg+8;%=Tb;m5@Yd|fd`8^nquR8Rz(J%}pC z3o3pd_J04dtlLiBZD6}Q|4R-=z+Oe*(9^r11j3=tPd}f4FLJMca6R0pn5I zpzkZo18@C3Tzq)59y)g>%7`nHO>?fVF!sVBIK;_n1C{!j7Rkuk~GIGj(o+~x++-!Jitp9OxUiYGR}wBM&omhT)`lKiFY z8mBRZBztyY_mB*)J2hUl| zw#CIB53r;(f+)5c-JAsu!yQdnd5z~G9OmaU_cv#{*5KDB;!bpq=Pb1yq!y4Z_F5;w zH0HI#i~OByoAS|eFsR0{6%koCl|G>Y&ZFh3`ExfIx1Cz>*NZu^vqEWDBrj8`chpTPxlWaDZ64i zLX2GRWP99x!7Y7H=SDF>-G9*btX*l&ZDwI5Argm=crM87cpO}5JfeJcEtoyVHx{d( zkr3l+b4h860KQQTpw2TAhKdhYJ5~KgB$QKOO;zdd2En~ZJ=`G48*;6mEi3f){$Ut= z)=Opou~ddqx*>hK=Q>1AHGb-{;=;QHyC=1@RAqX+P9VlJ|@)y_P%w-ZF?yU@wA#DMd$KCYiu; zO+T-VFrcKd0U^s%h4VJ%Trc4l0Ox`gKaUnC92g&L*3Y6f{QB38K#9l|IpzRCr_#0N z_E+8lyCksx+LDN**QXl1df;1MbWm5RGQ0v=imr~Pkv6<`6|eNLWWUd;aNlumEu%hc z0bUx`hF0kYx_eQrtx3r-2R9F!{a?=`WVpKapLdcpSeY|FXQ=>zHLbYL}xx;GCyEe?)d8iQB-z@FigsWu!P5Qv8E0{YLK}w^r)uIyt zU$}pW$cVnrb$8Sgi+*3=^`3LB zmBuF9k&Ea~KXhj-)eWk*_=eo1q4Y}4o|a<(k!20bW$}^o*<`v#>HWh%X2VLVJ$&yN ztBUNo=V#}FlNel6JfpZ|VepZMA}aAaa5~^5QX&|Ue5nY~7F#+#Nv6PdPDUPqQ_Q>r z^*68dXSP8{)EHm2rKgoh=Ba*mrac$UdjTC;f!MmcK61AsbARqe;e$B2ZOsaM54G;4 z)h~ls?qvgjP(YITmC;NbUn~3@3IFh;EQ8c{gE>*0j9{7sQ?(N$?{m zxAK+*V7|#WNG3@lMlz`0IF;V5h_=pqI@u(5k1&m;4Tt<`vJjP{6Iz-td^Hh#BNg&{ zfC=x<>cWSIr9Sx~+iai0VWWt^8z$`@iDaiM%t1&DB5wl58LxKrF7d`g#G+3_^}DK* zig?z;x1jj7D=Z!=LIg3jiTM?ZrpH!pxv)+HHd|o!&IKfb+^=-mDoNcKsn?87LF*z% z$6Wg%KYd1n)CBk8VzEzc)5;|8$@+%G@tO*T_PS}P$zlFZyx`b%kDhy4xe z0NSw3Z~MKYBGSMVRD2a|{oLFKz`#^a>(@}H`xue!o!K4UUzY!e!7=qw4gY7H9<REdGK#I?cRqSEnw?^{?>j zfOjV1H3r&B+xQh?$-<*n3hWO*x6?a0;F<-G7>Rs2|E-d0j{BC-!VzNgN3q`ADKJF z$d;y#s2z)+>!~|zqJa3=iTEI~0IdUG7MgqI3@=papkI#cm(t<0AKUsKh-vhE-b<%l z&wVv5l-F*{OuhfFuO=JH1;rzW|1f;m_O~yJ+eP|N(uqKoN7KVdoeSMK(NT1))bK_W zr(PR&Omot`$f`&?{~Y|+IVwj{b-ZG=;c({aJ>ro@bMW+C>tVIk%*MUMk(hyewg2CL z7%5j`Jqb$w@xykPK4mrlTgxiJ=)G%yD~RUx!nR?S_Gt{w48AuW&`;ud-LpWV+)t4M z(VPh1(F?G4oJfGlguLXv*^JDTn@G=tj})Cw!W+faLHjy$)_GGRg^QG`e9cT=r;^eM z&QjaZ=`vB+o=tc_VEVK6la;^`_OW@d^qs+}>y2$#P@8a4q$W(Hb7n!U-3+evgRRBI z)1T@mdY#wYrEaD!xKVOK!mqA0iO_YG?y^!jd(*sMoL8vH^RSF?doaK5~4)S&W@{}?}lL24$V9O>B6@YG-@ zn1c^bT92UO+yO;(8C7T$i}Hei5x5YxMX>jPDNmR=@O*9{vk;N_g z`Ck>fudLd^q?1uQ`E=CIojS}FB&G1ShH0xMsSa~DW=tj&G%HKVLHnSkkkP?9XAivY zR|6YN*@xfGdaCX0KNP)Fjl zu33y0Cb!Zkd)_u-DQu(M&oB3KE#vMBf{Q>7c6IR%9SQ^+H1BD5kMU{bo9VYcExk_u zVDyZjU=`JYA&p8~%BuaIGyiNUW6BWi&>Q$55GeA#-^PQp1gmvh%VQniYJB{WBPigQ zpXl;gP$v>hS>`rHe{I88^7@f;GyS!l>43T7fom4UE2HT!Gx-i3^kdN9$5rn^Fzi(* z`csYnU*p|z1rHNxg2y=6g+<}9RrjBesoJV!aR@7p0+syE^S#ZXHscAP+4!Z6)ctz8 zFy7Au)ikuw3`4ia$0sf*gU0ADrddZ9juqsu`xa*EU57>(i^foT_eoBjPVu(Wfj8=f zRw4Y#eBAg#+XyXg`+r4xJks4C{Y9@XbTK-< zWr~}*Dh)9k-&SXb`3(jPnWA#Sf!r)}=S zZ_d2p>p{egFKwRK{sA}3bejjgfL(vk78=|V(~>}QqncCC*neu&f!QgBe%YSagCKH$C2iKD4m;m zf?&oY7yrmUZ!h4d+a0yo^S=)_xJ`#Q3nxIIyl^?L{p>*ad`H{PE2XhykNv!+ zNJTeqH*g<>Br*E^OM3PpM`P*04n?gVi=Jhle7VPB@OaEO95Gl6%B5$O!a|AgFM_YI z1hgWqV|L#gZxa_i|22!$7)DR^BgmBmZyzH5VPvyUqF%$bq#PCXW)3D5O!$lZ#dESY znn{=By+}$%GG&PiAj0j039)`gp9=S$4XK>p!peB4k>9({qjb~fz`>p`H-h=F4kst540{WDgjF+if3lr3TyKj_H_9E>R^6_m3cAoR8WOd zrLH%~ik|_sOeR9E@gA(X8E0E{(c%!@@imgA@XZS<&7`yqf z^V|06VBBQl%g({A$fbwb)f6O!M{F2lf1A~zQ+J#;Bd zQD-zhvu`%IIFbaeYC*UuzU zmC$d4jXw_+PT5jzB~oP^`_yJkEkV*=vC zpl%(B+-`WuSyo-#Fk&EU<~Q>UT)qCqn)Jc(FZfZ9aP{=cBAX40cRCuv(Z#Cr(tUUN zdwcvGhQr`f)ortBsJ2_8Q83=wzzU2GW^!egdu7J_g zVmAtIv9uk5OyY_Q+GD>CF8Tn+3hYa^+(tAiOyU!PTXpbH#uTkI5c>+l%QmLk*J>Gg zQ#S+*h6DQjb_Y29+i3@ChqMB+^Fb=tL-

b}EF}IwFJZ66 zCCnvqZbyYD&{Fj_)R{`|A4cE}O-Ak0uLfD8r5w3It`#=>b=?x9>b)1K^KBvXPME1* zY$JG94pd>u3(BR|6%L>_LBHQ>p`{n~m&5C&8pp7MlEL!sFr+r3$_k*05=%OceOv z6Uz_48HlgsB2Yflk?u@0fe)PCzBFwWLBjK~Os-#8@v5dIHY*OTLAl!veJGm5JItAm ztQ~x=e07cH#}Rx~c|W3F=hMOYiA4Jg^5(QU!vycWVsO58QSr0!4uU$Xs`^`rJs0T7 zM4?kywq*4jRY&5y^0J&gs04=}i@GDCaMoBH)VuB3I60?WNFwb4)$5Qi4SBH}p+PKA zi3f6&9e-9)m+=THZGSthQ%AY7qCyD`_L&XbPy=wI@>MDC+N#tkWv&~*b;VR}+R^Mt zzJ-Xd@X_BV#gRr7*|B#oLI7|OUr2UPeQ2(}IDVsa=1T255|LMCogK=CS>ZZ@2V5op z<8Xt^*1vR{yKVC|+4bTHu;2>9;Ym|<-r^UfaB)nc`Pssu3@QC0uXLH=lwL>+@}<3E z%Ac5?a++ijV#J1?Qk@cSg9^6vLE_lna(|-34P^LqE(fMI$T-roDj4WKr3w!OBv4|V zjwf>J5FONtu9o{(yKb}zv3l(sHMa(69S^urkecRQas4&{ojUehrmL0kqJl$7G9}P* zmq6N2+`&HL-x3PD!2^BmCV1j%Rx>-|q8>PREnio!&!@)8 z^~B~r<}S1-!Mck@2?i<5RR^fG4? zZOI=jF2NVO7w%{L3T~?EiVO#=JZq~e zHs{&;E}$v~MtA6$xV>?#!0FDlNP~OqsD&-5MRndb+R-SZ5{x2UdEmi}d=}Iyb`p$i zAg^^1!qVA~eDw9X-$$!I?1XundOV^!1x7F1AIIb#JnBcx;m4Hrvt3m-j0_s8CD$?g z^X1KY0^cZHkWmX;{?U3-Mob7gZdGsNaM8eI3AgX+h>lmy#8(>D_oZX4YwjXdhh0D0 zB`MJ9MYS$#=OTwnnA=|OgsTY>zDI?|J@W-s{2BdtZRe9vQK5bAA#DrMCcUiCN6YM1 z?9lCNF8%iVkopNNm`ls%rMU&CoT5!BDGL@IeC~c0C9%rjGMNPY_(I>QFUpvq+|aaK zI1CStj@Tw$QwVfyqNt3@L|){ZC4VsaQ$wH~C^4|%>{A=Lhpf`Z)r&VL1Nsa+xgD)k zi?4P>9;>a=)x=Op^V%XmNcM;-k-^7qVELB2RefxCVy`wbEWR5ddhkPQ$#c{LSmZ2f zUS(fYF86zmgq&p~f8Y0PD?;M$LVa_GR9#?;kez=RZIFm|K(&%`F0#pJTH}~E#=fBO z!$GTaFt9e|6(vaa!NdMnj>B*EE;m}n`Mp7Ney=Al7D&b2A@!1B@9HMHlk7?PD<>N> z_>|)C#E#GW7~5JqO18OD4^>TU?}*tTZo{3!_Q7u_50PV+&6P-L0q9$t<-73Vn(L>v zAq3Tts}XkDfa_x4IRS|tHimx~dUV#$fT2%5g$Fx6I8|I(=xGhri@whFqzKaqlq)PQ zL03sK=#0&(SKxsb*-~&iMDWA)Dx04|0ft92DimU$U2Ic=y~crEE7w^MW(wS9`aRPD z)JCBiEz;x*uDfq?xew(3{#3LSznGlNlV92G{4xota#?e_s6(nM9pRx?GWtVd9Rf&o zR`W!4*qI4KaDv7?L>~1IV-WT=w8rp8_%3XOzk=s!y|q zDz~tLV1vxKl%F9KFkqQ03(Q>rv9(c9Q#!;bE<2|)QS}dFCkwk`c#-j48hJmfg2-&P z^FIuBFwh#YoDj4XR2Sy-vxyqv9=kUp9|sRUz?Yw<`2#=#0j@Q=QdG4LsmQ8 zu_Y&4n{Hl5v7RgGO$|ITqrQ!QJVU)jXDJa&0fGL34_`2Fg5-O085XuWN82nX_r}tjO)tO=6jlPyFN^VxY-P4?49-)pv}k2RzUn36|O+isGV_ zA6IKdz?I%%5Uqm|5d%u-UzyMdP>~TPk|~Geq%?&yT|XnBlYCz*EyNb9Z>Q5 zQ-KJ{vmr|&?h#7SAla^niC?Mu6tKXhUk2OK7TyG-N z72F3G1_hMfp{*GVC7z-^MM)DTIBMTDbo5}yD@432ll*~oV>4#fRd32&YdYUK`H+U@ z-B+4^1}!kpIXke4c>nbb zaDoXI&7AA#lh2=y^4cM$N7SuWbBO&Tzl#+VWi_E9*4xd)1J(}PX@;xbYVLOUfq4#5 zymOnB?D%O<05wk1GG$KDYSMf5Ts5OgPZ=i1P^`UP8=I?ECDshXrnrj4`O+|Z%*q#0 zd(D!fM**@bRI5ydeN4wDwDQdbvnNv?2xJvi{B8!X4;2O9oJ1`rMP z`8+SdtV?D&hTje2kWDLZjjhp?0@i)j+b*F3? z-T860W)$?zb~=^HgDVhPgv%K)$#SZJinCA!1!l4Q!#LeF!#toPrX4wA)bF@5*q?ay zfjV`wW-LtmE%PgL!Yc+eFs&gn`s1#s4V+7*JjKU`p6GlA34@&R9?ZO(9oiROZK-rT z5(cSiJ}sXvurq3WdYx}aG5)oF{MJPf`_D2amlR8_2|Brh=@Y%mS5?Ey5W*|1hT>3d zEwIF!rqH3CG-F8RN9*gZ=_kO*RFc6irZTp?q4lBw{bpE_>PXvI?2vX@FD7~Si1UZ& zca~IMnq0{MuTNL0maVQ_FQ%hzZA4bs3*NvNIUTPzwN5=ROZ)ct#BUceDGgP5?_i_w zCA8b!uA;oOg$IwEdYJOV()3Y@2q=i+alLfm222Bc8X!IpN`+u5wi@OcunNu%cF=+E z4Ukp&GB-Qnl;?(Rky!4Qy_zZL6Ft`6e<65~ahsWQwkYRm2pZ_U4@KWR z=(5#xl2bf+Go6eufFT1$RUIr>t6hu&_dsKYz$7tFcU+4sr~nAW@Y?VGx0#m2f#e8M zV^%X8z3K$h4hP^C41ZIqltiE=lsfv`r#DS0+`ATOZW1T>J848F9Uqei6@ffvBYG~> z6({Ee7D~scup~KP!SrLsgPIPU7m#2e}WzBn5d7zW41PA;(J!lFfr(+HAm}sKkCTdJ5r4v4_+Z|&Yu9trATNdp5 zm|lXzs+27XZ2Q5ZsfN5$kWC4!v-$Rzkq*y{`zSD1qwteYOusDbX=xzgSmvJEtcv}v z8yW!@``fLTNT2oDJ;*pqm+{kmC@8Q#8$fNl+THwd;J#drOZnQnVt3)-)7u-{ehOwD zce&04_vUJIUri=VxE&vn_e-fqsDV!>X}>)*3Z;@XJPI~DAh@oMw8(liPpTtY3ums> zv^v!&CZErQhZ1JW7h`nLd z`TIC@MX5C9MOj8TV>akM(ca4MnmL8#e1q7L=hN06BAKrat+yT(}Q&JKY7*z9JK`BHs(C$3OA)h7KW}jq@_Q-AhXDfT^is1fv zFfdUm?mUTsEIE@}-iD11kPs8OcVUy&D~(A=gDEWAecMGLzl??aDl4SG_PlHT)1=l* zKU+D;G?U)$U}>PLiM3+!z2EoAH}(FVeXwJ*tXu`q@tZ+vtO9&h%})Z>uPud%>Jp)BGOMu!Kz0+&J7B9WXYsF(@) z{C8KsvSAr-g>2GCMr}WuMX0CoZcD|Pwf-Q0IuftPym%}76SwH?^k1_x2;|OZ4;ES9 zq9lJ;g=jC$87qmxmya8mDOYSC1EnvU;REMU+*P-HnMJF_6}N3|a=3)u)`SDCM_GB| zb4*v|blC+3nik=gE&~8#SbRmkxGet84WF_!U=zA%Yr`RWty@#cn9lt~4xKT#_Y3rX zHlp^a*P9YCG)BIo{+(m-+>{aXz=6HrrO|gsu6t6ad)v={MhZSN5(p-aYNYd5t6zFc z71Jz<_?tz(NcWE&vC$EEto!QzwEpN!*fQeD(f6DDQd#^%3~$A8Y2M}U9(*=uNMGmtg$-*&@0b4P*TC9zDf>9;~ z0JL13cMy_3e7Rv{{liwGPU)rTw0EoVm1iolNJ(*awkXK>ByB82%52*~X}gX#oZnB8+X&1ryPcET zciF9aqOUedPCK&v~2KzVyC^(*{C_H|C_hxM^XGI&S+3F&LLG{rD*af7}=(Uiq` z2PNi35%*_98}VQ>PoXA*dzrxoasERWq<`>aPP}@HcDT+Edk~F{f>c-VYn@3N*GFgY zN*`KmnY4?jDjMlhxloQ$ZX+eC*2ZrseI)QtC(`hnJ!<|jFPbg%z6%7o$UWq>nyNH` zb+1Vxk$cA7boC>EOuLT5iPye06UmS`bjBgpkP6lm4m#k&XF_G3*FpGIn##`mcNL(2 z7+^0|?y|GWqlDBfNdFaow&3hCe<*XEsVDQ4j<^E+*>^FKYqd}&L*ervuR8X_&k7Ia z3F&>WQl4n*APqgepkScz_f=?t0n(5ZM4MSvM2e2>sQS-P4y^auD7ICoMLY#?_KrGt zUzItXZI`4!f>sEBKN@L+POH1Tl^>rNa`pJ2J_`AOpK<9hG-UNznooX)>N-b?>tBJe zv{T#xrMSI;;_B6F$JZM`UJ%i@$fVWUDGg5JN&}{?dm-bdWSzb~*Plx5g39^w9{xnA zkkvY3U$8X|*BBw;_bx4FIs^f`9lxEeX{O4mcrRySpw_%rYy4s`krM&!9y)EH0+GsS z*y=Bn0MxIGqaPn$0V@bjL!t5x={TKQ3VAAwY;H}$m$n?=UerOkRonX($FU!Kp8lo< z)h(jp^7F22Q`K8jdW6C>Oa@^BQ(3VrU33SYPg3}UW#$7a zGn5!1clHNJX0}&csfcg)*a|IMHFshUa^v)4{Oh%E<03Pw%xVuqnt(}ReZ0V~ER8TL z6^i_8W{IHe-}k6l8&)!w1;5f>#O)G1z#6qIHexpt#L7<9nXSoOA|qP2z_&P(Ezj$o z>frk`a-akovM%;%*1?mIfT*FN@7}1YG}efDaiWGkbG(Ez2HCK1z^c7>uSG;bQwkl6 ztOkG63~dU+kzJ=8`J{D2JtA6Z&0DIzff5nF?yJ@-73#>Zo1taZQZbrtctlzlY*?ER z)1*1D?zgEe?!nEee$xy7XUGO2|2b#`H^e1MC2p1P6v;CLjt^PgsY)(}lI>v(hZao} z&DT`j>4`C0dWYvJeH{C2SK`lv-jM(5dA+v}JXi*Kxcgr8zHCB;-&Kz6PPQ7`^F1m2 zkk=9;&hnZDy5$VavVP#C>Nk5PkNFLc+szmoRv@+OB^MirFbE%e#N!-b143JnM75#P z6hW<~`$qog)C7zgX}B7vbab_geTw!-BG(q}3nb}|zu*I# zQ2WKvcT{^e!&iw^n?GmL({h_jdaT(xnA6x$+vUCRTo2y@NEM{ZrB~M4{Q^%*&Pbj%K?uVAe46;Pr0S>O!X`2>o(rqfML(N%k7>=9Zh1#lx zLC5S&=xVKmw7oE6*bj0xZi6Z4Aagz)MX&raxdT{Dr1O`KBnRm&8L?YsO^luOH_B~n zrOoK7?;U4J)czMYU-r9IL%u&ciHcacD))@P{Nu4izHU!dNy)02sVXO@`pL^1U2ddC>E3G?@ESWtB?WVVN6g=eB)@Ag~&&M&`(U_uG zW2Sazoexs<3&81pdC#kPK4mo2ri@Caob?4Ko}``^yrqGv?xs@z!~i)F009C61_cBH z0s#a90s{d60RRyKAu$p`QDJfLfsvuH!2{9Z@em>tGC~9tQetv~Ad(}ZvNQkM00;pC z0RcY&H{bXyMO0t_+oCEHkQ#d-GM;=@=Jd|#_q)`Lf-J*)=Aw$_{O2Kw72b%s1}10C ze;^aD1j80k3g?1!dDi8{HR>DtGLUr>I=F`O%bJMql5(}01&|{CR~!@C55ImYv(z9N zaZUDx@22(;ZST5#{{SqRGGMX1AQKEYt25+<5sDdouANaYE4CC=e7VgrrhA$(U0r6a z8-$NteUw)j(Kx))lDl#WdEbov)GwP15Dzx-J=JJm_Kk5;wW1TAQMjUJ=m|hZJvB$xR2q@=%)ZMDH#Rn`3UFEr%Y} zM7`XKkw8mS+vuCW^xQm0TW(+J?U}cv@3?^uLY-&uoee_RcvWg=R({xM?D}oUElQwVU0s<(7TB7N22tgn(7yYR1 zh)?wbk7r|+s1xXyA|`+FtlE!po8c>+5A_h1YB6^+d$XbuLza&<6FJ8X-c(UHQOB16 zQJ`|?cU+>D`Y%p<+|{_M0hL;ul-xQ6(a#RsWiQv8roQZgzP~CcK`!a4fipnMMD+~F z+(IzKW=;%dq%PBU=oP0Kbwd>oEB4CCh)siEdLRN{mHrPvtrJ1hVMH9v?*zm#tU9!l zLrK2#!2mWDpcGBU?e-U_;yBYpV>b?gJWoE~3fWFg6v3(y5w4!sYK(DGnIRb)bUi|U zwR|t+Z>K}lpY;vr6>ZL1a8`~=*1^x8MQC2=5%8{cXex*D$XTbzQ$w}t)I02n0SnN* z56Oj*B!&QlVIcQpA>QPei36_`Apq39(%Sp0i-eyddLjoB-)b=r^>Jytb|rd1NSLQVaN&(r zxS$e9kE5W?JJ>{L!50ADGp_|^STY3O`6qnab41ZI=$R3sv(Z^Nlo_TvcR&Na*CPtD6_A)F zRzVx8{xhEzKPW;)Mb}jkfaZjT^HrpiMCr3o!b7Kv4xLqX=z8R$wo#-~Gi~#oJjhQ^m z<}L>V^u0p~0i`;Uj zp|oA*aqv@{$Ls$9^O(yed(>HxxkPP5F{Nw6ih=?s%OHglkvCQ4fcu^qC^XKpen`Oc z>zPd@ilGKyuGvNV8IaQCW;rNeh8ZBBD5)FS341CC0} zuT6>plrW1;Axa+ErV!e0JMN(@(val))F@)Lce*BR_M)hwj*1*qCMoaTFb~@V$dDLI z5{<`u?u<_3Po&HW0nSVx1Y(8}DYBeVWQe1is)zuB=tMGf3%arhEp}P?Qv`!0z9@nI zJUHSNczysS@>ffGD>In!%TI)D0ABt|&*I8pf_`bpQWGT#~TNWCH`a zC|N{XeHE@QfeeL_`mi@oc;2G@Udu3-MF^qiH_=4glU;N0(J_R$n;FY5Az6wq>Ud$U zxjJaa_Mb#dn6)I=t69kK`&L@|&|s?%_=9+U-c$v{4EIC>5E|n(6WV>0NT~U$D%F!D zBXw(vkNriLk&=J+G?e82(tcxAb6zFA_(ei3b5R?v@4OW8bpR(8-_nT)jRiBB1*I-Z z5=C}5igGBT1h`jBqfUZf9uRDLj@PI~X*3+Xig!P0#OKiiCmia9Ja4Kqxmn=Iz%Mo3 zQGu`Mh$_kfomn`h174}!4HQEDe(G0mIWyzRsE^u1_AFs+M^<>6CTSa# zF&F`MGpl0B{{R-M_#FQL2H+G%S14+Dc~+V5Y5Qg>LxP*w^@l{EEK)ag;^{5!osGzrl?P%gl|3tL}GF)kkMU- zWDAwYe3T?ZUe19e;Ulu2M_dzHedvIMdmu&a)c8=xm&%499!6)47131c%l`lwao<;3 zm2MbLJy7*rZ{-=^{{X_C>9t(upp*fe5c!77|a8X9!!t;mrhfBv3az-Her+&XbN<#YORbF1{r90MJWkA^U86x5t9s|nt3@0dz z?*>i9yj3xbTP)_dII9_TPk^IQTf{ySSHDe$PTDW+3{s$QbNO^89`9}`!-IMm50w!p z7u?lz%XLx2Y1mK0ap1VU{PVp1CM=l>)d99rzmfn^7il6N$J(y%P{LNT-!v%Hdek5| z;%?x&AyiFqhtJ{ShhYcoh?<^Vk=^PbNML$zcQ4`Rs0x;t;sqEE#tW&WxmV#2UOtV^RC}S3B2^b zbz5ab1?J>PVU6kR&Hn&by1DRHwQIPmMFUrwhoX^0wt9eNmMS-CG~0OUp&&bnNv6}s zEU-^%hP2(tgT!y11vSTkeuJJU#b{2l2T?`opZMtbA}3SDe_3^2v0zLx9 zoc+9YM)C1mkn7{w1N(1%lqAoB0(_N|jKcLv5)x6w@tK#9W?>;vYkL`8s)PDR?|pjA zD?-SBwHX&n-Ip2fqH<~Wq0WUuY=b)0yk?~G2X`{VMP2k|F|RI3*iNn2eo76hC08 zTeDVxke>RhP|qK1m9WOQZ|zzR-%5iY$#4D?K)xxCh|_qYe*zT2JkXg{brUfG)l@V* zkbUv|U7CNKkvMFkiBB~dlME(^zy2>v-2?_I_gm2zj}>jEN`%^TlJ1F$@1WZqjpuQH}mV}9x>njwDK z1E@vfp<~EOv`_kg`qz@lP^q+16J=ETZ*yc#H@;aXdLR*!p zT(GMz_U;3jk__L3vbhLcBsH=eo>W9 z^&ZICF5;~^$YqkTW+Gc>JHbXNkw7_>WS2K6YN0rzetzgY=bnlymMPif^h7=Sr_EX+ ze>f5*vO;=S?gz#|mS{{XJ$qk#VaYl8Hz!fx$T zK8i!SkgIil=1>FtVjImwB=wimDxV%vCK*$bxOG)DKo?U$`~~}Cz23j})DZjTm>j!r zR3Y4yWrHJmKuuYF9X7%Y1ks$SrKZv6Y+v(cbd9V7YZv@RdJ$lBwxQIA`f1OGvC!Xzu6Wc_&3`TT<+fkT{#J}H{{SHH zzx;kxw*JlqL8v@o_U5E>2S(pIBEpcqlIbqtexLDjarmfB7Pw-+XiLg>H)$whCgwnI zcqpL;;BZ12i6K2Vyb*`#H_8yr64$Dlsa|V?B43Ub_TY%TOd`#ygafAE;S&WV$u-y_ z_iC!=d=U;26iq*b77F1I(ehEM4;#yQ%17vtl!;~@uu-ZHs1wLzrei;5>=x> z5gJOgs&=}ZUxG59EGn%;O-MLXb-<`1X;-=h1CD#5W*t;3bn*x4luUg=%$CX(({Ls@_z94^uPk54}nPCypS0 z>Lm=u@2d2ph!beaGB2AoS(r{&`vNB6p9kshf)=iJ#KqVz*qWSXqlmTG$P9a{R-t+v zF9ctLCKkiS@tUpg%>Z7t-!;>G6AcxR)pXgbbpvC9B-L?1CQj27ydh>Ie5Ye~D2wm^AEJhL^WTrjr?RO`RrjfZQ{8Jl@<%Rd#xu{^q=Z3vUr3Di?uPf_ zPZhbV%6ThKF)t~@9%vB%0JS&8L}YWp8kd>4;lBuajIH(GRSZ*WkS^dHc(RCwk{{XL z{bhck)4oSkJwZb%D9CH&H{i1GshsHyGea7P{kBLLJR2i%1qrn#$ngOp-1O^hrBuI*~G<&y_Vhf%8ARhUS%F7>>w?_^k13B%H5+{66 zZeNF-(~G>RY%doe6p%qUQcj|md7#+Wdt^rVCcQ*hrU7t7kY&f=YU{!V&Gn)vo6+?F zzkIP!yfJ^}e(^>i#~;JwqcEm_j5AHT`P*QFx(s$XRnwkaP&T*OPV@;i*iFeo?%#TN zSGILzVVeocYU!068_(fHHO^i&O*-!+&T-WMXFqYg5D{8;W^?d~A{X1E6VuKro81(^ zZftOq6h#^M>omjmXZz}@BPmx-+*DanLqsI~lh2O%qN9;fm)w*Dh{2qsWmspUV(3L= zmZ5D6+7iH_>ad$N4R^&u>Uv??q;5(mA&j{#Iu>Z*GO}F=Kmb&Mlk`!@%JDbd$`~TI z0TEN(LQQFMw7~d4xH`9%2a<^&3&;>GVKMaWa zQ6hoHV(gWh!ExaT+;3%5j_&wYvK{@A7lQ7ln2J$K9hI*HP#ehuJ<(#XnwC9NtEJUE zlZ-ea>H{tH3h&hNWo)$7qa~7ZH$a5*{7o@6O}ZyAv(J3FF;=kczU!9tK;k-O-)^K| zfaN~w%!NXg=8C#*hzsW|3ExFp8FJqgL*j%xWD^HZHuv=IN!0MiOU0I`&s7h~DO9{Dj5*SS3TCK4_wO_z&0L9`@7pQd zYqv}~DG3|={G(K9iuDC2ar!_{f*y#9x8RTZQ4p(MzuJKATmio7AN0ffbrj`JO2bQh z5ib!KbC-=z2_Lq62^%bVhQ#x`py#*Lg`W$35>g0Iz$>5Q`+yu}`VL+nO;o z>fID^MRxpiFrr>T5fU9rI9~+@XsR)pq=niB6tMlMKn_u3h^fz2>+oHW+&# z#B3<-WY-``-pUt-6X(H8A;C$iuah#i^j3H$j>>KJbzVO*aHo@!|N2su6zK zF*oV(qY@b5^nj!1ypwIW)ijRrLD{-pMKg3fXUP!T@S=xa-cW_wyXVtT%6+$JY>c{>dnrt~9(5A5`n`{EV2Vilp+$`QPQd-rpv z`P=a+yCVxcPQy#h_;OH^Z+WAB3Mju}4E4@ZYq`ENkTGTt5d49=jTNA89K~?eII|OU zuI}cCrdXL>ED#NQjq01Oe+m+xL?R;P5ee=^68fPk z`>3H8Z1+XY+(fzNfHHnc%=m6FmPYYDG+rGVV;KM`AZxz zKro7OJ(+i7mk`S0!8Hw;ku|@uH=!xIDw0F6vC3++p$f_4# ztVQQZfj50sf%>sB!GG6yuTWYUVpMPu#2=PW3o^t10Icv2&3_c19k7}XC6f$z?uZO# zYIRH^@4XdXZtq!!Yp}fMq5{a=(TRaP2DOt;Q$ov;(*9H`FG>qkmQ95 z4qa~a$f62>fpeXGlNr>NKexxKwnlr!LT6T*dC%PqO5XKc5iFfdApKC1840It$q0#g zD51_tlP5$B2~JzWdqWGcnvNT`P+}%>Lb9T}@C;Er5F2bL3-^YrumVbG?4nnYWeb!ZsC@VT4nA%@S`?(|Rc#RIfgID4QA~GhWINA2t&Cb0z8qaP|sm{(i}dJd-f0)@WnUtJI$Cj^>!FL^mz=dM5`NaDF}!FzhtbfetKM`f^V``}c^w{gYIVLdI9nEwXO=!C!=&+f)!v6qq=s)(J@v5~5X^wnR_23dm{Y)Am>Om2a zOi0Tbrq7~wTzA=Kp}Z_!`U)t$8wKy(Ly3$*U+yA;Mtac?^^iVvV~$dqAL?@C9KN3G z{maRl9vxo^YOM%?Za&+hjIe4GgzLkX1bsOY37bA=;Q~Nog=Irr^)1$F5Ff@DNkiNs zB;ss2zIUjcoUcKZ{{SC7Sf^mk)_s+%2LgmpkX*6%!2=J^kCiBe!;iPRvsXE9RA6=d zcoqC_Sq19)a+9X@g&UXIMEdmR$LW9hHxQc#@~+6JSrW{c)d;Gd(<7IJU+?Kf z2xH#$X9=M7R*0f>OG&sO+uZX-2&|p&jw}0$wp4AK<`scG?-l97VQ?f6mCDW)y95M9 z`=&EbUWyp1K7q|PC>E35Bwpn`-mG4mG)q%my8cXCMw+&HVZLeJ?Nd&gPkqrvs-gB# zQGWm>*?+gB`mgrDFH`+6h)TI$te^Dz+b=`cv?f%J3P_W`r4A)S2ztoP6PFZoQTk#a zWG27bkZ#{TfU<|v5Rmf(9nS7oV!e0+w;h~%h3Odq)d+18WFBJ^2n;mya<%%@l2H9_ zz15)3CFd-76%VayT&1}yMAQ^v`}R~%BsEZq&jdqp{8~`Pap~})^$z(>2(Lrbo|~;v zix3s2e+lOIlw+2csN*JE(Q!^PkzcF7!k~A5?dv`6AOTvFf}?B-vtO6I>)|-Vn2cwq^B1!!~_oxn7N$yg~1k+*k34 zrtv;Sm6%Oj9Ba*$<%lZPfj=GOzgV4!ejXK|f5;|#(Ifs`7|k{x3Fc>=6H7%Wm*B+V z7@AYf6DeO#_X3%w;qSqoNzM;?CHhjdMt<+vV?UK@L^Pc7=B@k7bqdqX<)QPpMUEPy zhRUoj&67&FZI}9h`MwzYyw#ue0)V#nH3*CT-BdoA754W%R22UJvj(pDpn%V%6OJ3X z3A!VeMnUpKxfkK`q5@W!;jcZ-dbtNJyro*G97=k;`}L-17Nq5`Ed@C%WD_A#K_LGC zH02U_eNOF-{{RTVDsSAVTtrx%R1073jNWkb?Kg&sEkzJ@f2Ue*Ti)s^H8|Qm&z85`8aNlgKMX{7EV1Ars_U%1#yr(W)64(xGq16anD4~~q)kIqN z=IXS+P6!#0*t=qC;*3j^nuOlY)OJrlaLtUCIw)Sr#Y2H--fAGl`tPy~atxW1l@CRa z1nMRMLP*~DBR{mn89(hoh9^o=XIYB^b8&gS_lmIyc&1FGc)n`LnIQ2P;9XiGo98tY zKx;tm(MilFE&zlg29U#%W<3W3R7*Yx0WvQ@zv3Z^p~+clZ`}#%!dgDUJKt2y*W-@z zU#k$#OoXW|)fjW#5UA8CT8R)25?8i+2=9V3OvsK)HoX{SRbUsK?%9$OWE}qhX>~dx z1G~$D0}f=*d8VVCB&Yz+NW?dqv|8ezCFjEpg~#0(nFzuMo*UJ2sygmexpAgzL;nEk zp|omwAOo|uzUT_E92K3iv7D8i8PT|3w!s`P#rtk*8K{7H6>^AnTi?oS$0ZcS0;c4h zIwD?B1W@@L9RrN_f{~zO-{&eTIrH{R9C_X9BfcsVJhwDM(4U0f$iUaSFosr01fQi0 z-bU;=-^~UWNUI|5$|q?k;SOF@HEJtj8$*plj6~&UjY|Ij#Lo-C`a?0SQkm1)5jS(? zQv0wx`>#yb33LdEaF|ZyfI45@2B1Car&p4uXdTIMM57eIxRHJ-n~F3l0WO?=&8%un?om`)K~Ns~-qm^s6E z6j)Pz6eknWU77*Iy>3xL95>nqSEijt`pe6JoKS*PUYr(WY{hVyhv7x( z$8&H#?7xhU+BOYAS2sNwvM5N$!<+jkSh(UZ_`z9ujBB5`q|w}$@sjAmG#j}QIUvIf zZ#@$$AvE0y^+F$+ATLHQ+a(n;&ypY6zx#6V;Xw<%Th2-v>v6$vr z4%5!{86sjse6>*+%q|*yH>fHs`Dfuw%rxaZuK7^P=Er`?sXBx(>OvD>KDJaLiMo>Z z$wfndL?SUxmrH*M&BdBc=Uh|~JSS3sc~b$d7kRN!9fmZsq%$XQvU!TJDo93E`;+BoP+sV$X$uv04Sok zD_Lx)O;p!GhvsO?Z1~Tv2sef*%-)IiP%MGP5reWKM^wrZBKK4(GlHHq%?OJDdsDhG zQ3f}n&nhUKJ|rLo2~db#tCk8d`E^1P37d+w^-+h4ndS4Eju0j`+F#uWfHxY_eOW^Y zzK`^yh8wb;>a39wVaEP`5GIuqtp6Z40DaIM_#X&j# z32F0A_sIvEh1$u~pJaTarxi!gB6i%=Mb3Ir8Z&397^h&|A9E?sS69=rG{1PN9Pqs! zzI#51jrUN9h3XL^_o#nUt}4%zf2`3Wa`K7&LdQjl!5VM6y;WHPP>|C$ zup?~0nV-#Fe=WV@=uIMNN3iF5&r-d;!cPV&tyJt7ecL0eFJs~Z_2}c6;8Qq zD4`&yZDxaS1mk}x!lH$BQC@}xGfut{nc|Hl#ZVQWvat8`O%OPB;L2w4y@bFM4gfy; zAV44h4DSpZ>CCZ+uHUZ1GV$^37c z1c*z|%(auci`5L-PrFe)p)22jY3ap79nC#P>3q~6G`FfGl3qgtB@t@xt0)V!vi4BK zG(=7JsuKhu1Ms;6l`dcLW0}?>{D4t(>Vp<2jpNY<_fZ!i=7^S=A|i9JUj!T*H27W= zK*$ZU9+)J~Y~-Q+^&_A#%N`4vC zP==BSek~VWvqAnR_K0fBTJRM_i>H|q;xG&>`0QC2n%2@rYKAfe`9_!TfL}BRJ{HT2`U#FE6 zF_33VxTr)%QHSl1Lo3Xckqn}2Ff*$(=0b#-w1dk`ON2~JKWA}rAITFt&Za@EL^MWw|1@a#% z(}||}!Kj_i%2eV*&=q#-tldrSiq7v=aGKupRp_A7e+nYa zt0+ayJ+iVyEF0>dC<@-Y1$j&j4)8z)pwSrL7Ul1DB?yMcOU}0|cL-lH!`%5#7Gojq z*T;&nO)xPR9I(KJmuFu7a^AUC}LsV2Oy`uiT8qtKJ`~tpFjK!?Y;C& z)kb}JWQiIpV2{iRAT1%Cu;4@IPJU%)r?zuVr|rreNFrgu%hbim(K7&?TS0VK{|>$dgqi7YM` z*SdIzb!x9YLbh-U)2Tg2H$b(|nUwUJHkq6^{vdQNm_8>pX8_yet-UT!5S*KS=>Gty z5Xt`lW~)fgytp{ULH?o>SeosWL4~ix;k+3vrQ4e^B(FM zBl{>%;nh&?gr(I*Do;w4nVZaeT|{i1bWjsR=(_p6Iqc zP5H~ex{>ldhA7{k9;krW;-G=ApM1{?&@;oPs}YS5!k=5>gANkW0-|>1#R%fGMP?f> zr3-}=U?CfdKMlIIM^=GQ#o-biZIz;~K>jG0lt5=!@n^dQqY=%3rBp!}@H`XV>Hki)tTSv{-$iVDz9oFd2`1w?ndlU0;Z#9Izr zS$I?2^zy9D-%b0dKypZCqKX%u`QD+55e(+j##r;gPA2Zm=JxkZHpKQ{tGF~jkMkMR zgZNRIDLr|ikxaWGUM;;7vJ;w*6b(WF2u)B7j$BkgInDR-p@w^}WMQ0+_#ilMsyGzb z@l3@Mq9}rKL&k~$jFH}m;(-=d6(v-7sZOdHUbmVQOq(6D)Fv5?je*x~|jWEes#co$2{f6=Atb}TX4-deTxmoRy5<>=1o#30s*$@wf z5W{SmPlBEb5}21&bY1GL6L$F`B34ML=&XyY?6op(Xqm_n;XUMsrscLl;(1eVw_nsZ z998UzO`pOSy(yA{@rSaAWxgu|l)|#Z7UrjFZUaj)i6zG+Wz70ts%EF)OTraSN`_%X z97#7d43Tl7aa?4if%5y`C3)_d^7G+FclC1Pce;gHK{8|p_lg5O&Ou#QRz?r6vJjYJ zBIA^@L*MWMGnNRbP;bdts$Ty9jNLcbL|?s>0u9cHG?NX{0P~Wv#qPUzsIHS-jDVdg zDdXiD_w0dBzmyz>Gz~u_O7u${6fwFq(uh$-PGmO)L$6G;@S7d)WduXT;T8$e zGC_fot_V(u%9^f^KFDwFHCB0q?t*1y4eGmPzGwrF%DRZe(#2aT*8SIQgSc_cc6utCjx%Ux^Xte(9nC#cYuP2K~)N{kdiK6U$B&qLXHY5Er|Q5X~4_2K)xCRB(#CBiDx-6UrVU%DV7 z09ru35!{i%RqjOPywDrpMGib06i@!ST%x92kh|xaaElcS62$<>Pj`L~;~mujhftWP zp`^Z5JRw4Wl-7xj%s}VH?7|b@y~&Y>FDhx(cQ3<8`&AJ8bE~7nJy0xVf_p-*i|$FL zs;tg_$VEN!-N?%4-%=H(eErt-=S88?S6&dZGrtGLKs`UDAnm_&XMRfXT?x5l#TR1A z`SR$6`Lp%tgSo1N_fh`Sqf_Gq`Se<=GIa>uRhO*S@s6?|FUfx$-rnuye+%Qy#|!y1 z*ZXicz6#BmC_{X${OB)2r4y2MYl?`E!3CsP?x<#45$vME>x*EZoka%O5pD8965FNQ z2q<0Jm+PXExi}*v;n2YfGSyy22t!bzCK#-pLD)uM6!=y9qlkS|$w;ihu1HM~Zz{>z zLKgYQ4oIdZ>2G_PeUxdwyjK(u@x4?pH+DjjmiFp%l&g*gpEO>46_d*) z4fMGfO>PX0WcjY#IC0nT{{UT(bVj(+^fN$y2_}1FODfHQ1xtIZnbnfd3CD9l;khZR zS#d;6Z++9g@7$B~82utin_QtfV1(|T=aQq(&t(3!{&-Rq2sA%R&7Y(^?a;%DCnY0O z?w~W@1Re2EyC}n)C=|ERT%bfvaR`E};{2qjIB_Zx?#H4P{1MN4WH%t0_7$DFoy?fM z6A^ZMy&qFBt+~TQT;a_Jr?P~wIH#1*D80stxhs)&MZ$p_zZOMPbzZCzv<%^1ltLh3 zGQmh14B|Lt=Jjf?b;y^Z(}Mmu^uYlX-dd)t-F~9-PD$Z3Gf@%+c+EL?F-gCyncvwl zcfVC<9-j%Z=4-&IQ*%(8h)yYXXl$rI?auBf#0GoQB_nur`zeU}Kt22Nti~^RZXx_S zvx#kG%%_8nRNjcsaz;mUzwyRtn;uEGzZ_8~{{UJ~5Ps`@ByO1a2XYe1wV#)|-GKCAAJD@6td_NbcplOS@s)W|5 zzw8t`%3Go~XZp-1YqZS*_aH;bTE+8|Nf`_G#Tb>MpN|Cyae6IxBn`z^Pr%Ja28wSX zciMgKN*JCPs_pKrOzWZ%W}T+}(DlC5KCxfSaVj5G)IOjp(h=O8T$n2jIpbGpGK3~{ z$PKcHNf2O*F(=C)p@>8Q{{SI(mFRk($l@>9TyH=zCgFunGDp?);SRvQodfXIe>BOP zcJZe~Vl&{?^Tk5}#;Cyej!XF4$|0#gz=t&ul~c*D7_+Ay`6vwybWSVPOM-ni>bu;O z!O3yfQ|7GahaL-ybQ`%t5fZdU6Zb|VLP-|`G{bH93~SF}6NMC{Xr*!u*A&VixNIiR z*#r12nrO8In)y!}VL@F`F-~*ElqM<2amRwWj4-QDfYM0o-9k;#9qLd_EAh}~2q&h7G1JwxfiT8f3ccTk>b%}>&_w>0WR zpgWH1eR(KYnkSQ|y%+dS1?Pg_!PrjOraoQWL@Nl2W~adO$pM`ZVTy(lOr1tH$%Imi ze(ES_(=>hPrFi8#>VzO|&<@o1L?epRR=EPAH*)DkY5lh}BHqFccKa+hz9@q_Nksk7 z3eS!Ft2S3jUZI!YWPR0;Z&1OXL@(bfll~f4DWdZF-!w1X{{Vp%MRZK`-vt;i4D=T$ zK%VK}B*Cdv$g*L*-kIx8$*i-PaZxqf;Dj3SK?c1^8_KcIf)Hq|WALmnCOEdSPKLdDB7H{=+=qnbjWeIOlwbm5 zj+dx|YN6Ji7Zn^hBlpP`s6f3Jgb>x#Gkd2lNbgLM50KA-4BOvT39ESDG)#=Tx_r3q zNwC!GgMJHgK-radMT(g~R0RpULWn9NK_^5dJ@QgDXHiJ+vb3W0A${fV`F+*U zX02qJb?Bi*2<0H6E+F#bjazv-F*&WsN$OXx z=@uBUnEo#eU#<5eNP&lKvVUC}RP_rC4&3)AwPU7kx+8K^2 zDKZQcH`PQ90)O!}3NS37TPIMLKp_pB#siN9B9H1RE!>`6H-eV&L}rP}Lo@`pG((;; z4dE991U%%V4}QEIJlBM7@!33B9x_CSot*LDtqICX)GsML_LlZPQZa z4keEGqun|z3N5~>*7vfCdzIAu$wF?}PCh`6qLi+mBD)@`f#&Jrgw@6y!9^2_ zu@})=vVUM%cK5+@Ih5qkEl1KMUj9*v$@+BfR6+wX@>etb@7X(Ets#$ma!*{a?1lGl z1RC%TF8=o~QJz2nQN5Jy3^}NrjuYW>V%3_4Rh8OefCN%pnOOe-fuYs<@MLX2?b}5T zyVY6^46g2?im%HI{fZ~{z~A9Sd!QW<1k^DbyE>}e(aLCdTaqxB-sZoI{3`@j@4d1R z#53WyK$Bh8MF1PRa46cv?LKacWSzC}xQz+lB^Rg$+vPcloXa#|80R+Qz9=vTV?EJC zXZ^ku_f$O)OT-TQp(PAht3iyEQ4~y<@)wtM4)8(2@=j=s_#qLRlc_w+k!zGJE0t5!iZjoAl}0!0ATCq|Ydi8% z#a|<;vpO@nvpx$*Jvx4$ZpJ;qA(!;+D4*EDW>R{@84YJrrhcT^!0ocv^* z3T$p!p*NhcKr>2urfFv{l?=}%6hdN;bowWI!Pcp@<1JB|hWrx)q>{@VPaM*Xo(J5p{PlupiR zzB5sOVI#}Jka1m1v}X4R#f;q-BMs84_;urZ^*YOnhtk__io+%iHu4paH>zQAOc87O zq8}syK2)!&>AtAfrT+ch4OS_bW>aRF1vPpiN&z zae2CD11jd383_a;#IxPv^dh4^{rR9~Nh~x`MEH!8)ue;8@K+{x%r@~xR1R}fy1F*; zSDzhJxhqmYE3U~<H)pp|g-f1-g zggPQ~Go4Wy0`pEQw^0F6$0C@$6giTNFOg>yyB~@pDJFFZn_!`5s+{o~Wafp(R3}-t zl?5=>QRhAgL`NOoiNJ=&?#j*fpM!V7MJcW8K_mI7C5(r?1(BTx4}Ei@EM|<;@iOQ1r4ED{{ZXC`nSB6X^Lh* zI*MjUZb})B=mGgMMr3=V7}VsL7c=9kf+?|llc!dbx;td@7cJqrCme7eJyalJ#0Hs} z)dvsId#ImO1C~7V(FkD^Gf^BRh2I&dK;obE%`=BTKSdZ`_S^g*4EiVMhMiP^t!9ZV z^w)Jz>%L5zF}?@_MNl$EEa;s8O%;!n)fgy%d3!cLK?n(VG^Uq*l8mK(`ltmr_KYOF zshYBAMEm@!6AwJFJQW$WFTg0hNstXB;~XhmRAx~*@06t~xgi*Xv_l)D825U7C?at# zDmbM)Ji3GXNLGpybvz>slro)B7^W>Ug;?gPnjpFi5Fk=p?xKar@?L6U>-i{+CAlDI zj4gZMjdpH9T5OMm1RziLCmIg!{E_{EXh3R!499{GF*ISlLLt7^VuART6aa}eC~7;X zfrO8(%|y(imT9j6&l+}6%4Ydubj!LRk$(8xn|Q9=xGExKuSKW45uHtL`9cuY_)YTP z1-kQANje(to2sZ*evpzW*fupNeh0Fk`~sXG3MWEY0+H@-x5 z`ctDm`y+{)-Sfc!3$hRzTxTnhh1|UdJKOL7{%_VM5sK2*j2N{QwIfE=h`lMbtG3#+ zLByz8dqt5_w6wKnsXby;)d*^aTD8~vpL_BDeZF_$I&$Q7UC-y^e4ORn?q|;zF^Kwc z{jLolD~~NiO=2^qFXftxF>yMWP6?F$U9PC}*;Ggv4>2gnmJs9rf@`4wVP%&TrWzl( z^N3r=N%+saUr00Dq)7v(>Ale}2lxcnjGc*-8S!m*gCb^9g?H&LzD$R!*!Nc$v^tLXR8N5-S!C zKrqpuvMc1-%JO1I=F)b8mr#&+;yHDY_H)y(;mqMNUp((s*#m#7g~f>S@2_jhno~ck z@eTlzG$@?G9Kbi52?G!Z`G+0|&HGk=Ehj^-RMEo`#?Up*U?F-vvm;Gq&ko#8)>`vD z&l7rzvc@)Jq$4kZh4HFa8&Q4a06(GX zh?`l$yG`lroBoY%ATJeXyUeJXD&d8o>?tFpQ5xMZT!don%I~lsEHf`BINViL?pCz+ zw;;6ry_&gM*ZSlQJ8+b+Grwl`lqoNx zB2avDfrk#gJaE>ZLK&i(SR~^joEDYv=B1c?;(KFT0!f+5pu%LE8>e~4`&r+Q%ES`$ z6`vp1#ZSm-&6a|z4%KLW%9Pw+iuet|Xj)H158jl|hqEaXNUu2Z;lV43}lW+q7~rv zbASH|Klz8vtJmn&p*A z5*{ag?W|9&`_jBG#m#DzmpC0{v0GFrNQFsGJ2W;QUsQQ?Z#Ybwk!BUCL2m0-qq}#n zq8moPRu=V@1Ec2n@!JKK<5S(T+su<3Wg26)7wuSeN6)7N&CtO8b_2@~wuRrNWuyQ@ zZC}(J~nkiJpPmbTA+3K!|$YGT3RnIxvMWbF@ z=QljqBIP_Y6W+^vBd!fuWk_K$LvymsI~7&kKZkm(CmRc|i+NHekuadp;E^50wRUr@ z$ECLwFlp||hlgCrqkdx}fIjw5+3eGtP_TCq&2$_i75PzZ(=&Ba7R;rJtea)XiF?V^?-(KOUWzw;+}3EYir#ln8Oe2~#s*M#6M9!bfAoU9k(3UZ}1N;iv?wnlb8 zG*3F3{%%BxZF3FqR|}T7GeLvGg~Zyfs<{J9o$(hRjm3TkKPY5hF%L~~f2gyJY_P&^ z7k|ZD1)7%xpFveET{_W-+wpHIw8peY&2M<5nMn0$^H4yZth?G=U6>V;VLAR_2$xv< zxRT#5J)6NIs~+u##y!gie2HF>)R_#8>+gDu4pHH93hy!5J! zTsEBdkdZ@aeV3wy{6%TcwS zw&}qR=ePVOQ@pNVBw-B7BSqT6MKjW%W8dD-%k9JvpiX~=l8}C(4XKz%b9XV=QGYRc z%QXXgD*p}{5_D*c<{iZGDTw&5TefMP!TUKjrxvNk2!@U@QFyQNpFykUe1(YwHVOhR z^afL}N(QmKxhYY>O^VA$biibHp6uT&O_nWZK>!Ff9 z;6Mn{q$D_S+j{TTge_2@dPP-nFY@J8-Y&_tkAl94h?oK zoHp~|hcI4?u2<^9}g#{kv)Vz$d$m&*TzXhV!X^I1giAo%k;KP6Y@d?2;pU`FN z1Qnv>0v3hek#=3+4cXa6H;pCqZDeN6ry7l2yX=*Q{dyi1+?cReJ;^I4DeW%l2Vb4v zD=Y@JGo#(RY<1EyI%A#Z<0CQv>Th2V#iNgWvT#)dVB692o`Sm z=-^I2IS~m85;dAuAsuWK3?}~dnD5uvzT*o-o`R@tUbTt_83D#QjnJ@GrHUqebf0B- z78tXyzK11UG}4V~Qi|mcOa|=ms?f^h#XX7VfZ%iz0X+h)oNjeE+1SrjP4b*K&*}O7?=hX z!!rgGl>#)b{v#qsRwWU!`>R8JN%bAUM&qcqrQAiOvyik@^&GE)X#?xdf;DmORxAr= z@5n{n8cD!%j>8bK^?}~oCkss#?P`(EhV*C`Gr&@?pTYejJ<|r2dNRAAKQW=IXZwAo zAqY|tfsTpxW5Qsm{Y<}jJp-(BR|Y|1AJ6O@mX&t^r77;oBf0{UXf!&-cC%T&qh_4Ixw#9@Ge9u1Q6|r02x$>zfCrO-48M|Btz$Y~B3Hig57czUL58Ho?QW9!QSDg`} zk~%`oB^>v-$sKjh>kJ{KEG*&4PcQ_&PL+(pP20pfgvXt&_$U$S9=Q|qNQRz#Z2YPG z+n@S?Hc>s9_k9v{+-&-7LN{gt&%%_4LW=eo{lU2Y%sqQjWjuO6euM7OiHXKxNlQ$(cbEpA^M8{Oh&iaskkAAeoZ zfElvDZ4gH^=g;yFxa}x_#)`6U>^e{b$jEujOq;xGX9}ebS~T}2RIAJ}^4BVSujJ<0 zaltj@6|z9``QOP(70lBhU9ip%tMva(8;@$l7wAoKZ2g#6q|XR^(EyJqq}ZI;XNvDdQEG`y8*46<-ux6RKn2!7i>*;CiuD1W}G&i?xaP+qAZ(H88t{eW@o#AQyZm|5TR})ENXxIZO}v+dbS2 z zY^uk1$1SCBf@uHiK+nfmM=(`Zss_F@X|wO`5FpJUfZ(~8E9GjNapT24@t77%-Cq4( zX<`%dpc&H4h1Cw?d|&E#zXGipB2cD{iFpnp0=vI|7FX$~T7^cG0@=Lkzp-8J_};lf zNs>|Iw)p?;V}ninBba??0SUd49*V_74X)d>E7~CFe?%uo3A8I1h8Es~KII*Ofl^Vt zCu1ZfvW`$@-p+Eo(!s^=_A<2o_(togo3_KfyD^TaRzqPXPDx~O?GU$HDlPq5sT1(k zv1wBanZ#X9eAlAlpOD0pP~jdMChqtGoI1!?H(>lb><8njhl_AqtTUwZ!%AGs+IHE) z-{C+Bhv^L48W*1Le=T0_sK$I$UZq>P3WmRP)A9|+Gl^TaE`lCk85kRAs?!UCn9lZc zDE`JcYSHo~X#8nE)8O~1oOC89+5|Jih^tX%&gntwVFsf!Fd|idZnh`nixy;eTZOMb z#Hgm@m{bTP3WpDMn=%pOg;04ra{(5V?W7iprokz!SN1%P5{=|@Idl?JRhC*4ph`zQ z2YnFFRvaXm)UUA94jjCPQERtS`c<-i4)HNji59Rmno*eOCv#3V!bCyhiwqY{E;s>c zn$uK^(;_4MqBGXcZkNv%!pvjx7*f^%CAB=QP6lEQ;mDlW)SshwgRJ;|HF^ zFel%*%J?j|VtTFS&^LZiLOK8*vf}e-g+xn?^5c)S%>tpvv5#do-Jryuh-1Yw$?Iy_M6cUqtq4v_E}!x;UzER)YFqD>O8lz09ky1Ad`_Idsc zUNAhUpwfCE3n}xq5B`3oR{rN>Rw~7=ZTu|{ODF2M|1>prZtF2`XNui?O#ZUh1Lz&h zyES78IUYdRRHt2WIaj!ERh_8+WZ}-E`Vx;20{cSymUulR4wR`8_y)YXB$)H#(K|nD z4wIyo$}R&;&FVv{YFx#4{#PugaRP8zx$Bmw2#osgs+-i0*Wgi2Ixk!Rtz`Z;(4rBP ze-ZZM`QsgNVZNB`7C<#$q`A5Atp5zvF+6#*3zMX$?t4$@({8kH(|$Sv`EqW8w}AJx z(bi7POZ|2L;H@KNdrL7j>(K?gmvms{5ZxkJXc75GL>|9mSo58#zv@AC@^zU!p=r-( z@i9Js8_orMaHPJ0I5ml5uvw^VG4Qz#+(Xj;-_yHL#kbC*yqA~a)Yf6zM~lWj z_g;ez7J@`XBNg_QpC*E#UsYaZ)~!V`ssGlBKRm5&ofgabcs5Ec{opGly=;Dy2+{;( zZU65)sPvcW6*sst+c7W%$;kR3e{uLc82@pu`8Xh5IZfueq54sv@yOnrB&WQ3hTmd+ zt+#Nj!PE^ib6^NTV$9H?oY9}s?O6^yMlKvyB|A=A%qNo>WsU=8pSFD)66xhTDHlh+>OcHm(2)U^&c{KyT^XJn6`4l!E z4Prmt;TzT~r*wH8{Zlb3_dvtqh4e6W{eMKB%W}D#qvy|rQsd88>cO&iu+mqQP?Pu% zFUAYI%`+3f*?Wu02~K^Cvkr|61?lfs7{Z-*4f+NF%QG0NV8wz5%TFt zpB%j)RMnzo6~9!Y@+7mQj>@9`oP&{i5xZ!U2t24yjaS+Vamz?vs?A{_a?`y8~ad_uRp!1}& zot$rXE0bkVY~RiW!*9vA;ORB@h>(*e)w{)ZW;w58hzg^a2a zpQ^?FH9dMy6p~x)8jgnp6?{ku4t9vMOt@J&hf2PNL0Z^c)ku$T=P#fP?YXjk7~rel zH?T-|MDO$;DeTKQp;JU#rQhrHIBrh@!5M=Bcv6sY<)nkALc3WbGQvt}v5!JNRAp^6 zN${Po*m+VW_Vx(>#;81bbqf?Tw9c@J5q(`%8`uq40m7!v_0+FZ6Kap5=Tvm>1D3SR zD%Wz0DetPp?B!02fGYFk9kuCW97T1OOTZVgP8Os0LIpGX>_T#w6@ND1czrhtUMSq; zX~9^sj*;ULTV4@NhgNxQmFZvpF&-6&Z$vX(8HE{ZXet0d1m~x)AH-vZa5g9KzQ@fZ zd&K>T5TqN|P2v7eGyHw|wE(qgCJA&>T!&GxvULS~BOzm{kk|}92pX_OC#bWN(?+%h zzTLf(je}1PhB)=0z-8Itqm(W`95$-2v)BQ;!cz*q)HGkRCr@Y%U}T&fZ>`^t&OnJf z&(b)jJAxqrUB0ye=}00c`R&)n)ByIcPgnn6k>>ng*Snl-mdjPHB(1k)wOt0o8K>as z5&1>*UsN1Ej--hs#J%8JO}V*T>RJbHEO&I)l3cQPx0S zHlK6LmV@Yqa90%gWH_Y6=f1>#qoHV*Z*hP#v{d__x{VBs{NFpWeRK_Nvloi%5PH9! z>P^e=0e^^dO$ZO?rI*b{l5T&fQ+V)+p|hu-|733&m1N2NP@&9TFF%P}sKf2YjgGAh z5OETI=(}>Pq%mjcSsq}c7B&|6H*-&VzT!R;BKbDLph~JQBqpQjhLgXW0j6$spm_s9 zn$+3-RS6U!!UZr~+TXOGd@K3v%R4Bukx6pHKU}*#>wAtB!4g>FF1i*TIa?d(h1gEp zd$f{Eei>cOYG*ufY6uWT`l^#Q$*P%@?)ZkdY!nV+2 zyU!4*P`4)T%C`)?Ch)}5!GuozSk}~jhWF$T71#1#b$oaqh@u~z#0%t?{!!A3!^JW^ zIXyy%%-~)SI4{M6^f*2r(Qc|3mF^72Ji~cNX#l0fuX2Stw@R6*Sfdz=v-CT42T4Q; za?=?5SB;Ykh-qFF+JWrr_1jxBh)s3(n=n^2r;08qXy%{kinx5k;4jx1nNkkUNSF6@ zI6%#JKn;BdJb8@<*IKANhD*?$`+vxmqvE%?m1usaLqOjG(+&hw`+1JBT*3E?PAznZ zl@x%465U}tCY`CsEMF$9tl^_4-X>_`3`-SbMdnPkC8SrDLLeH*?O0OB>t&FzA8-Lr zUCaHXcU*V@_NZIZ-t{!CdvyT&dHHgbvQVt4k&25dHae%6%!-9Yykr6t|eqf+}Md?!On_)A0SP-2k78Jimx8Pbs8nhu4 z_n|K*zdSHdN>QSBX#088%LOmvMZa@+<|P-91%lM~C6*At%EVhN77hr<#E#VBFEOv6 ztl2YEW{c{Stu8Gho~wN0Qp6cYrY_(8jNxkTm`iiNOUGjscBk2r<7^{)`SKM+hs~z9OZSf>W z^|F*#0;D&e4rDwsP%Fp)>mgYg3mOrpaV#&SIb=LadUe)fozw%DSM%NItt8sv{1c1@gI>1`9tCc8C~~GN6rvPNsv`teGGe^ z4ppL=tDmrHx+AwsMh3PauX=QGM{M*pOTn><1$&;j7=P5ydbc503*RSpL$T`HPz{F{ z+nN-A(|To|efp{md8Tj#m7qNrQrUBLC@iF`ZZl8X7kuBN@Wizt!P`>rN=H|H$=YC%}8 zEZV+5a}1Q~v*c>_YQW0M4!=1(NQk$uD4_Iln4L-wKEwS+R*nZo@Q}o0!Q(RaQJ<9D z<16}Ywg<)In)Y6nw7gWGV^K$pF0ov_C6EnY&XP?qYC3+aZ|jKCmGRH942G0RCRNTu(|x6Evidanh6W z@tFb^D#Rc92X(tzlf~|Q5&K*}v@gUv$C`?a&$l7gvzr(gv7IzEi;g33(tf%q^7m&? zS(^0&t63^W8K-AGJ2UQLD{6|&z48KEji)LyaQ+7FnD9(vyDqBNc7L~(s&78gO#eru z!_8Q0R?UB-bUHk7@|P-$CnlYDe_Jg9-t(Yd61LvQF&&YEWTUD(eb3%FULst2+{>%b zP2ty?^{dX7=x@KvgVGQUl>jI^ESDmuw}+HYVc~5hx2mMe$Tg=Ht@lUF%cAm@Q7Gwo z&o(3!0V~jrml-<&Wn^thbpF|_X4++I8L$5uwG2lw(!5hT=d`~#JSqn?`JA4ax^F(h zC((DlCFxAw;cU0lGxT5jROWjHDYh;6bwf~2DpVmNJ}qERxdpWtisk=^v_cNp z^T}VGSDvnxK)4B!6hYg|vb*}&j3@P^La$P8CLY&8xinTm&u>lUm}$5zGVYZ!8~t|l zJxIK{ft1pQE`3~);z|s4AS7r0tZ~pkaWhsaFV(qsSzxvkdO){ABP;K0XRIUX^3y77 zYp%NY!G%pQmq5uFWBeUa)oQh*5&4&pZuqh{1N z>t?&D;3Py--D$<27-l>fF$d)*j_$XaAl3RLoOt^FnZgDsko_chEE7(y`hU!qQ}utt z*Mj1dE(vsfzX8f7f&xjk><1biyos*jD<&h#Wht>c1oXkzK7N(iL!8(@dT4)tzsmXL zVSljb4AKP*HGYRrlG{TXyEE0mkQ7ux^NNVTZng?XO}>2FB#Ej|G-H7tgH#gqkzZO0 zfy9gJ-Nf+{E^Si=W9i03F1!Sdu;n8kIOD&SxSl_INjeC7(s4R`v&sEHLF=X|=~BWH z2>x4IA(eP;-p-%gJcW8}&U{RJENN>&bpCk?%j!*|a<@L;K1>vPGidE?LVFC4x8UNp z!o|{z-kRvbW&d?6S`cvVRQR?~DmAzCacz3_D5HA7ijk|D1 zi|1HNoqNHJEsn-}a&z2HG7JMK?WYmou5b^G8YqD8Z#pXO7724G6nS?` z_$f=}k2PVqgY?RY2i5rT$?}KjerYBU)8a^iksDj3y|qzmV$_q8iD=P?4}C!f>Xd2U z>#}wz(TM1q+MjswhLy{^7$STxEQ@eO2RFmqNg%P`4Hk9-%CuVw+_5OMI(39V>M^(0@d7~S1W?UHp&oG z$=|Zipqz9+z7(6ndqm4_AS-dZl?0Uo%-pB57(rDI+wlwg@MU;^1v-J_+Kl&abkIDVDxwD2~i5`TFP29eeVe5a|Vx!ZI%I`I~zm%)4myE|5@dJrJP(< z^?ss&1?Tm#fvNV4>dJ0;J3h|#3thKWkkOl2TB8~-CQD9hJw z8FHG0gy1P@(7oBPiIRk|)TwY|)$h%dRjd&+h0sf=Jy9&R_YPW2ZZ}G1@I$44xQyUK zEo#x99LL20o~J&!rV0NM0jqe|6$s`UEI^&Er!G!pi_jlq3YCx?IWsw>ru0+P&lE&w zUl1>BqkR1NbHdgh4*i7g>KzcPGk04KJ3-z5XO%5f*&kjIbmPHW#(L`K8-X!}df7&Q z6(nEa*s~`6CL^B-GymeaHRgYuWz}bl$YY@dzJl9@}jzK9gNu4>wNhi(SZNv_=_dhz_UOp zt~`4?%FA?5q$~s18#5CZxg~^L8K3$vFO$;Hi#a>kcYDWV$eXtEj;DvnZQ4sLiSp{g zQ!EMFZv5!#mdS_l63=c*@71rW4;OUHXDql1V|QP^-qX_t-VYAt|9$|ZWfI*>ct@d5 z`sEy~3cG(~U>4)XMf=rMpwsECj=$-}iOQke4fmaW$LB;%P+}R6lkP|kPKwI5F~k19 z7RT!%L1(s=XdVWQae}nU{YC*(n)K$0O&^q7B1zdJgw59RBhm?EA6;lsDZ#`$`u>5X zgEhB<{gr%T>aAApQh)>*YKwBB0wNUdd!N2yD99^ z-;9}&W7XaxV!fry9r~r`l z>M6M3?t&zc(MlYZ_(`hVcGU=+yBI+4X>px@v3Wg8abEnJtNPK)E)zzPBFAT0dPVR; zo!F)C!aDyEkvJV}#Ohsw>+a)A>1_Pfqrwk&-#?2VB+=}|y@n|U_E{7M1g?I8$K*!s z2F4_Jdpl*35>U4(dK*&_gIf;F=7Jm2ZSAMlrr~uq>ZxPdnNhkNSBZVOC7P^;1c- zw*SU_8mkH(t_>4WdvpZvC73o;^}|8?$cCp2r|Obu zZlaM>1CAZkgHLf*PS<7Np+aDaUT5Zq-uM#1zcUss`HRejgx8RC`$jcZ_5CfAdcG+< zF)!4~5osV9z!@yJUWZN zTzh16L$Mb9Sg!>_J7Y>&CN(O>hhDAS_=p;8cwmeut{wNcdQfq_j$72ac<`OcYy7RT ziiZzeWp=#7C3cH#Wy%Ek18J{cbEq0mpt-=)VnN%{U{ObhMqTBzJ~+wXjxX5j6t%H~li6b%k=z-``K=Zh89I=*}LKt}whA zFWUdfAI}e;AaP9Mwqfr22km@ohV|AGI_H6hJmLwtCGIT0T{>-lycQEH+4AbD;?8AB z_cZSW71;O8rm+t3)ZV+JeX3W!+9Vjy+z@42_!KYKLS7p-Qu!YHWn`uEkhIjl`%tc0 z_70Bk)wXXCVr~9R^F}33|4Q0YBYeI4hajPbF0Xgi15NuVf}d`AaFxYX)SwOKMbLx= zK1Z0)D9A`4Hb(wxS8gZ`86yK`PXqoadB*6UETUSx1-H)rk}oxPi{_s;wBiZHN#>egW2 z^E_Qni0fXd+V=zAJ=0J}vefQO{vhz-HyG&(Ol%&Uv0NF0sNkEiVF{^*Ep})jv(g1a zgt+lnk96|$z`kTb`oUb=&972}ij3#~&YsZqGly~;xg5mqYde;-+3%v+yii^1Vjn;C zHGlY>A2m6Ge(E!5;ir_1&;4-Dco1upUYcV-!Kh2nK3TgKn6U{!qWtpr*VSmxYzMx} z-9J$A#u;(lI!HdpTX`!;g)|eEbJ-FA9w{Jql8moMKRp6oE~v zQ7++EoJRZW6kNKb`h$$^jQ!-ap2<>ZCIh2fx^B|-vkvWli<0Y`JxTlc^&k5I)b%lr z19baLcR~wdT53NgJ+yP=66;m(7jTU4Tqbi72Et2l>7R|;3B^_|UZ0Sip%60mLVz2X z9ZkH+=ajhkdf&hX+{{M&#Mr2RsD@u?&b;WFixfOaobQ!h|8WCAE5hTT1qBOL(TYYe z8$5P&vi-0s`AcdF&3S)+h`1PDPb_I%4SD(fS1km`EA&mpXZ9~lkM`501_!p(A?*IL zksJ=O7VgzO!(h7?CPNq^yK`K=bpj5YU1&TC4tua*Jd%J@0US@cjIBH8;;=B1lcEWYxpUf&@{FE6i?t z>7}z37U#MtXZ0~$s|Sf>Te+NFgJxv>FehCz&049zQ2m>K$ysIC|J zuhSn(wA$pU{U|{F(8%kdHu3h20L81TGWjF3m@VC5Fr@Xa*?2ZgbhNk*c7N2Ezvb;| z;k{y3{&Dn-MFvI#|FPY2{ zgLhR&V$gfBRAPOOc={emqRO7SMYf*VJtSq+-BeLnAg{McXqudt)SWY|+S@yQAi_o6 z4DunHSL9-&fV&Uc`&mT-w1|6i-XEZ1KMfXyxQS-zQ^HI5q|q<@0CI<|Vu-VSUq}1l zp}YW_;e$z~8JN-ne(PY|n1=0n(M0v?Rk~YMwPbNUP(Q5ESEBiBI@YaNIiNil>*}91 zix5uQ?>;mRzSu4P**Q)PExi-JZP9QXU)aLx16zCV9zK01boot(Ad3^LUo6SHOQB54 zgjz0uNr7Ev76m;Y)aKVQv@=F--y?1fq}0>UXw;m+f_4xY4=lqwGdIe*CKkw*9G}A9 zQ7|3lk+U>m&G>vp2AbeJfvW>mp4BrkrqKmLlSmjX*j#{AwLp`$Z7GH8M4ykl;Z8G` zlxkZwzZ0d^CWjn1VXM===X7dNad~JBSNm}SZ(E$B*0!4eFlN+D74M1pX;ueOM}=X7 z4@~uiGi4^%?4_F|q%$^Jy;u6}zTdo7#oqh#Y+{u7oHzGxnsD`FGUi8n^)9B*6!`Ct zlE$r7)HwA4#oN#Ht~!17M_wE!fM59{wqrmop+!#ttypEzcCI?eggaQ*+-`3ZKR2gO)Wm0L@ zdjf5-I5&c&(ILp8y0PV}WGzxX?{)r}+RrQaWnZLtFDBd!ei>D*rRnSA`~0KSX0pxu zAwcdF=i?zRUey@k-eTdHI4%Iib?lN!Rr@TrZK58{`JX8=GNWMkyoP|w#6dZJ#Kb5} zi}{b#`a&Q0w%#Suv2W?dq#z^=+@D)VQm#7+_2iN*pDV2|A+(apH8W@jr4E+O+si@IQ7*rsxT*u#!c27 zQRRHq-~gVFic9HQy%j^cJ-*;9(&!k-waaU47 zN+X$W5Wip;(C?rI_-(gfn1Lb?gXo1GTFY;>Ynd;i=l}~v(VXH5pFou85+KfknX*AuyveiyHtVBFqe_WcO+su#*yR(Y_utJ6=s!iW& z0wa3AYk&DCS%$27L6N#ae((}8Ymd??%+kBui z6(J>=qmOeod?9gm;b~{4s_klb!U3IOwfg67))k4vJ7E)@fwyEP%vi~(FsA2ik`vaY zB%zgI8F$K!xCi6TLR@O(!S!QKeXv=t7{JRuvU?}IUV{Bfl&a{@Z+kvwN5(=Gv1 zQd6Ro^a?iy*Zc{?N=V?hkNz}+zZ=!koj)2Rbv9YNE9gWFCtNG2IWY-jg@DYnL9LlW zb)Jr)$;9c{f4gBNLG*-MfthOF*L1g8bSx83W(=~a(4+wHHF9Ouh{L2ziq>$sVf%PD zt_9=3S^rJ?)!J6?Mk5#h2iwl~<_TgD2z}pWyzt_&Z_^R&ISev}Nr-SYqJtncimvAOH@o1=Mo7EZMk4XHbcd#J5 z?CUiJeknIX-(ndNh{L}f#%@CY<)8@@U7~*rF4Z8Wz+5W#)G~Hm zgnu0t@$}MwV^N*9`&Em(b!qQs98+kedbE1ujOEg)fxd4`aV|u6o~plpCc)a?ae}39$=IedHj4S&s8@kGIO*mH zR(eGM2&*P?b3mEb3GCRJb|H&saLyHe$^3+z6ea(fb^H7)jrjM1*+qlQJ(1Fz(wtRv z24}ZgxUqrBg?;g7*zGU&Ysg!FQZ!Ls98aK&iB+DQF8z+L2IJMj>|t^2bJXJ5Hz;dd z*yAn6mn{P&q=9iL|bs2eLxTGv@$5AENJAYL4h5$&o1qqt#3VSq1x znaceyn17w?p}pf2uMB4PeVo zZ!X@982o+WMjQGkJ!C!JQM5IPb2iE+@T@r`>4=CrdAHKleiXLmT}+d4_v5t0$J!|- zBJT9Hq5f++`nuUSJZ=Pp_ctV9scOR2DbRmE=*i6EHm52{I4e}}2iKDrQ<8r$oyvs#@YzQLsnGx$-TLqTV;5x3EvnwuJUeKZ*&f8^b;l2q}y6b+gPna8( z`Qa|Q%NrbINH6r^UDDDD>*sv*nth8&Bz>D#M5Tof{L<8k|+%iqg%#8ZG~lKh-Iz;$kC_M zMb27Zhwd^DeZZ@;ZFXpvu@f3>1WCRYUI;kUrOjB9uFL1fN0e&aHtELIyw2mMl*su` z=w~ZhcZ%p0AJl95sJflRrsN^6ISyOT+^(VK3Js_#V(Q>l0Ajb*R?=}<$YI7@6`58~_@=G3bCcf>LM;(`O_mxIyiC8f$9c0Nd^Ox`8@(xW<*B;!R2(C z0RXYIlV(hArs1gcvfLlNAvPVHuwHH;j8PQFp5etjpG^+a$=dpI79;tg1_y!O>!j+i zT5hy;ALLiFnF=tW9-m}Xm%sC)oT2N~_+gaMn-$pBGfq>k%{X%mcRtJDlK?mQvTyoa zzDw-sKK;c1W}tUCRNQh4;odhCEeR(oaxcaSnN6UiG_c3q<}eRIPZ*C_Ps#fIJ2r^j zf7RJTG>(o4a+}ej{^^=Nt{Z4V-?}!~z`h*CYeLHFFqSYuhBd#?HHbk{WH-Dx21I51 zX}bl^L59rstD=k|U3;Dl7+ z(}75Nn0Slo+rY}67=FgpGL+HxVT|&ZSl3b+qaLwAHGvr*3YFBZ8Ga0ht-Ph?WCP}V z`D*CpGi0uE$zzNtu#~DQO&>yDe9n`@SdZpDXe``9Bfalu8c0=;zcj;|{Swkxsj2|p zca$06K8m6oeE@BDI4xN#jO0t-z4 zw6-3}>vy{I_dlXJ+h=JN`|#!9dya9plE$Md#?Yq&CR2IA)u`8eifn*f9cH-)fCi>kT%xxc&OtwuJWn(yL}J+QZk~7bRo|?9CC`UVk|@ zn}xvrzPTydgE9+IDeO4zCpQAv;_$TI(Y=f1DDpWCjJ}giNtZ<+2}T z60nYmE7z~vp+5qUppI9FE2bK>FBrEg-)>g|MkTa~s%9QrdM%PBY!!GtaGQTC4a})k zV|(I0>8bU>FLoe9t5UUc5-HpEb2Bt2Mj-uoIib^i;O^@?*T3DBO2q!mK$VAP(r6d1 zMD@6sA-ILSpBt4-+&(&44?W`U!*depXViv17pn^m&B*4X;R+Md*V^03xmBK8PEUA@ z-r=i=!@VDpgA`&xiQp0FPv5oOYii!#5nGVmzR$YAzGp+E>`B?imx(F?)l^Z`ScW$Y2Q-1^!oWtm~T&Kbfq!=`Sl~XQ_7h- zb6PV$_c|4><3!!PJS32IdSOCM@MtPMP!gXXTq3Rt;~2u@Is^6ywQcQxGYEv2%^-=E zsO~@bMC5?}eDV+$^W0~c9~~zK-hZb(NOAjx;$AA8{6p>GUMXWC`<_;uoVea}U1JYW zabZv6PsdP|x%Hdh9pUX$Y$MB?*^{DBgxo$ax4Y6_0D&Us?$rrCqx|mLB%yftC+0z_ z!)Ef_Fz<8j=f6kjSGSp2-bb#HPLQ)y*r#8^cp;4^uVt;$}o-T}h-LRYG+RHInO3#s*8e@UjyX1rZ zKLFQ2D8Eh$KTK2;CwIISrP9LnV-Kb-p#~8<&b-tSux3QcwcDtDP9+0YQB~+sic=qH z%-Itnh3fL2e@lvlzXT#^pEXl{etD>BdSEyvX?9ZI%87`-0lZNH78O0UH=s$sg%oj3 zx!-zr@TY3g67zsYW@q6sD#l`Xb3zt<`??UkroW7j>wR(C%>ZH2Ly%8aRY24zgz)-S zVR`pfMCz=~)$>@WVYKo+Iyb_w_Z-wdnZXfex1-ZPYt**xu|V_ggo3ose?^d|h?9gO7t1#*>RV*Td+dOzAvuC4VtWvO#NCc+)G^En8sZ|%d3I4n zJ1$Mxk8}Z$d#jdrO+lEY6mbW~3#-u(3+=McRSx_iHgd+Q7IK(31V#Y|#ZePxb)NEG ztRx#y{{T}W8j)!a_>jitx#wmGVvX2Kjp`5~6F5%=>O%3IuXJXjfN8;#Q9>kgqRB)!6&xU0XC&_>1SS``=gxZx%egblcu7O*m|PwlZ_Fs7 zcf206?4bgQVJXB(z2-rpAprNC^r*H&B17ALIduiCF^C7?zM2T%ax-D2yTJJF#-25aKCMD2I7( z-9zcKld2LolaEH#uL*#dqPALxd{j>(F}u?v2x6je(@>E(F`V)ugNg!7KVFZ#5h~ls zt4ZB-lpolJc}`|qy9CWdA3=U-2Q!L>mBE;k|=6ah22L_=mb zwxPiSNiL67Wr2E|g~$M!sE6LdlGs+_9gXI1F0w{#xu}H2s>*ep{8QHY?=;3DW}&3Q zn06IbNl#^OZl||aMk+znkuSZ~8^CCjyjIXMI;A?Yr z`nf=ClOde767sM6KY1o^d$=J4oS=Vfr@>#XMw_8bFP1!aL|}@bh@mvkx?lvv$7DT7 zZGPiT-g005IH9yIc@e{NP`+os)m4&e{C$_H=^3#vjyW=m{V}v?7-oFa?}AKAaDsC0|NvC z0{{U45dtAG5KuI?u8ve+TeoOQ~RZ5GOKO{>yQPxf$G+%v{l5#);H=w5UP>Gb> z{)9RZ#3_CBBjs7LTDWh`2|pwu7?-%Vkjo%z*sPNIR%4!+)WPL& z8fN4L^y)V?XC7H+iWkyl)h?}219vEyMJAezTq#H1ip{{CZ|dub!w3DXx!#4CM4X$M z2PDLL8p{rq7fSM;DUv{bQ6o7Mbx{x)oD(3=Cg+Y!j4;I050(0aNwRLlnH3F^FN)wd zOjp=35aW22#e}{dQe|Y;l)uqL?!>-UW!3Jz7(6xcX9@EhJuyrqgJuW7W{P*m6k7-2CpS#LL3iI z+858^S>EQX29+~R*V@HY@6j<)0#%uw>dt9~CnO;l$u(x^5j5iw*)pbcrpkGH?YgLg z;^PS*GwKzSDo&}0%xCm@e!f%8w?e1CJP{{mpGjby2a6w#`Ktp&(<)P*idfY@&0>-G{51rcHp#Eeq01F-7kMkigun@yHb`N-LK%D0}66_R5?#%7* z-&G7BZXhQ%`B4%Ni?2l-aL8NcxSUZ55+#_>fO(W+0m;0XRrO|EDB&@}VYDI)e=;Sg zoh~vWQ*~$fd}s?<5iu-iO`1qbCu=eQhZV92{{Zp)dBoym5oi2w6)eTaDor2b#M67{ zHk8QCf$~H}2n5pNcR;r236=mZ>M}3oycAGE1jw5Z;g3}R0Fi{ayH91qhyu@^Y8@brl^=yNZzzJ1E zUz%r62&2V03FC0qQglpUkSgqAa7X-X+J+~{lx%_GE_3}qn=4EtD?YcYaK$0{Xj%Fo zVwDK@`A*=`Sc{iJn3_`=ueLVmaKNcQ_eD; z1=PVXSyX?A?ZL6i(%Q`Y;xYhg6cRBud33Qd=rc-y-*;{7_w1J zw3_UG5F6fV%eo@SB3(XHmT{vq+^oU`+`b*bQCkmi!+wZBNVNqh*N2u>zOl-$e%w23IIj71*+}e-IcKzU}p56s8hL)=As|&nabr66sf}|^-;qEVSG#}t=3sWX7Gua ztdGT*0?qy-xlju}Bl#Qsm+`-oA!ydGIv3U#p|W8lUx(b`2bsWn$-Gxy8#VlpIM>4| zfgtUCF&_;DBC_;`)K#&>HH0>vE1IW#*fWUkqgUn>27Kb{hga#Hh#>@IJLK{E{ zi<-=$%on?=iYTsn^mdTFuk~NYjFx@fB@|Z*=$qu{x;Ba#$fDy#4E01XuOwkDRzQ&N zP0~o1;&@@v=mrWKU&rwlH@Gyw!qn9t<$dti0MmIj&z1@(PCpnaW0Hm_tr9=0G@kMO zW+!-v7)W;u?zxztY1b*4$r;{84c?PPKptH2=A1c}>V`DZPpSrZ?5f-|#R*bRxh=AG z*M3R#=(#88Q{tT5b)S;7cTaR8Dc0(N`Z_V`$wXiAi?5=FEMgvr8%C`$&n*Y4;}AMy z-(1za%7!dZVLytLC9Bkv4tvbrevB5@FX+zUU%Rc)$A#fz2K%h*_bu#9lr8l>wZkcUM-uIjb{eW|QAk z(2wD?oSbHG{{Xd*il)$!x*=CNQ`P8%%XA*7aIF!(i;OZDX6cE9idxOkfI=mlzG|K$ zeGK1ylr3JKs@ZzA%F%_Vk$et3<)L46LMC}<&08jlEq;WN3(W6S4W@jVMk>U)A*k$Y z&}df&z#N}#5S%aiS8r^gL_D`uW)MO5o<)f4LgE@t@i^wKR&7UrL;)m{?5G>b+p274 z`yDB&686w z!iFRLx%?ndzmkZAOGTH(=+5r*>4Kg4-*)`dhIS2$-+~-K+IPT!&wBf!>T`7HK3vnM z3{-Iqg>MughCRt19n)!mZk7iB07M0zSSX$;zfJt6VZN)LYy}q%IKh3&p6cJ+yysVx zt5hpj=jy+%_eAZkTMBf4g%C_`Dvx?CcE`{|pKH@}L!t`efpbb<=(4IPwwa?4rFZ7O z!d}h= zr*N#FE@}u`OytuVt~@gr5hl%ke~`S*w#nfQ{@a;KImjI6LoRA4TNg4UOgvH#hDAFP z2yWX6#;VKNpCuUv$esTHx5?eqP?JcXlHmz%TBfXx$}nDgWfU>Fj@gFr0P}M_B%zx* znVuf%E5}Qe1kGoEe>6ylF>vD<{4qeo0Rk~RT14e{Rzese{6wWOG+{Lu&HR%!#rc#X z4%kTCqKpXJ#6@1Co`}E!bCasVX44WN@AjaaByvDCeiSm_MP|^dFe?v}-l6_GwI)co zo36mQog|@d1!suR&B>4?VQq^%EBPF8;g&R%{aWXKMh<_A4YvMB;}(Gb<2(1|uUAQ|SFm6GX*dG$~@edvpibSJ7X5`+eGLI&Sd;07-J;)fYtJy8BZ1lG-PErT`cJ~88XeYZsv zaY7Bm%cV9{L`1_DCYau#guui(2eEW0a23-|SHCpY&EizbepFDgeeVTl@yog}(XNPe zGCfrkH<>7R)kk*lQ9}CUnVRzT%qqX>LoEFfmHfbTU=AZ^g_|LSRdItdYazvC)=OEO zh#{zGYKIU*DO?MH^1!pgbA*Dv{3bwSy-|qh6jNL`wON6KxX%Pni)@5Hqyue^^Fk$? zOL?dwknW=5Lvaqi>_mt_2TA_9(L=_v3=e7RR>%+}TRI~6{36DvFqZXAXx`UKxyeN& zcc(QB0=MGRLEQI5V3=-7C|*OZyXJ@%XNXp1fZiwy&6{$$0@t4CMIL^BX^0Xrb76j^ z{{Zo)H53h4flY0uGQn9748YRZeMv`DFIb1HT?@T9PhwI8n11Id7&Kgm8Of43GvCUZVh^iu#LpG83LM#I_=At5B z+YR1xP{%XjybKhJF>o*CLWp{HbYZ!kaJN;(Z8zSCK`GNkMP5sZLxc8`4E3fFU!{qQ-OdLJ&pzlt%7QMF0+Ez4uT<{Ai(h(je3i{zb=(8h{%(v5F@r25W-> za1h8tlT?_Cl1cE*ywNZE$r>VO^YWaEZ+pm<3m=sVrv4Mvmu(b7#O2FAeFT7Asj3vw z62O#Q!%(4rC2Aju-HRi|0@f$H%DABmV>)HsHSS*P$3%5s#{$=mV~P%Xa<`$@=+3PT}GMaeU*oH_f}*oOI4k@BPJ&Kz6TvU zg=jI&aSw)knQ%?SU+#cyBEv-ppXAJLNBJ%UraQ@t@|jUH9!vQWW-@k_e@M(i#EEL5 zp#+D>7Ad4zai&`J6f$v5&6F<$vHdvU%=knb*$**{!iM+X zG+~1CG3!(W^^^J6s*( zOlMy&g!YT4!3w&Jh(fi*z&3B_m>^K}-!xg%wd!N&Z&b`Td{pug=dHFk3zu^e?d;awP-su(Ji_r%?Tmws-cMf(M(A=Ap*03Q9E{+OMB#sa)qaDvNZKXDYC2Ok~-3K8=AK6)Cje!Q5J1YRz0p# zFTRrMtp5OraV)wzu`=#CmO=q?kh5KDX!+5#OhrM9wDkEY?xgb>8meFa04H+NmPlEN zjH1_fD>F0ffW}^`ntCF^LtHyA4EFj8dMf__USeH+h)zf3Lv%dGUD1qOLIM0o%aY<; z20BR^dR$P6u9^`$=B*M~Z#7BO(tel)3_zZjCfj`sEE%0M3ZUN#K?09TBM=^1t^6TF zc)X#p@id~T~ivB6lR>C6$vJiR3_1KYk$QRp>;f+K9yb~9D6Sl zKKH5x#mXpNW0ieXl3J6`VSSi}7_YS+Te%(-=*5}y)JvL(cr1o+NST!9&#L<(Im9f) zFq^NiaXpkHO;jSTfAPDjg{bGD>YP2{#WTr727cZ_LkKQk-!8a>V}7q{sc+8kz`=HI0ZY~UBj)C^@K)v-`oAdt_S z>h#MRo9cw0BJKTNlJa`8hBuW6+tHH}a72;5pD2CDaygSeies7N5NWsAghE4Bv=+DFnhbc0IgZT-#4revuAmyUO`lw8eR4x#k zmfu86J9Jjb7y*9nR4>1&;L{k37N;*hR7sD)l*W8TIlGuqf{{SgqX(^)=AJ`6_W=L7Nxgh`s zZ`9xDp?El!WY<1-C|)RubDiFylf2oaCq6-l(e*+pP_}40 znKFyTXn;r!XwSmsrq0-AOG5Dw4VIZbC_i1(f*5b20h6Ed)s?2iq2sMZ_%9S9ZH1uz zR}~B{T=m5l1YRa*z2KrE?R5Fc1HG~#?@-GGDLv+kBgAa(M2t@FOig@|gwGCKQGHug}WfEiI`=$MIoAa1F-xsTeg{{Y#kbLWq)wL}4^ zoj2yc`6v@+d7{dR#-$d^qpuDF$x?s=-`z^{)~TE0_KcS$WZ>7RdX3c)Z*=AB@>9YQ z50WeeC-08$Oh2t%S)AwSnstAVbrdC}XL17?_kLXv7YPhBLK{w+xOt)pnG@a1iYQ8i z8`PR=5YKo#m7Bq}kx;n92KAP7SDT$fH_xhI^1I~|B_FaUy64#d=1715y6&=3_)B9= zXMSiyTTOP{RYw!M3#4=XV7PZ@R&A6;d!QkO-))JTqyGSoHwMYnKuTGjbnV@7DU~aJ zW@Xp$_*vaQf}ntwXTEJNbLl^0_69E3^{KyRbYJPLj#pj2YA`Zs$aI*X(yWXu{{ZbK zq!*y5k!kpWXr4d-hB|GkoXs2!{N~C(&Bl_yA7v9vOnig`V7ay|)j=6iLoLw*abkfX z+F{+V`Btq_653=hK-zXZnNCg2D$NHJQJ>e5-;hFtUxE}UMVf{;s7&?U6kI-I6k%cR ztetnNAv4~Z8lsIzkgaz5I9r5>2aC13fqaxzqG2Q4+g$5#f)f|}z zp=4n(dg;jApoYcM!ttm?TcT??(BW`-%$g$BPC@s26_qMFdLV1jIh!vSh@-?Kog6&y z^<@i|wB#53Tz|A(Da?LCU{%ySBKT$do|9Z^U~diGz_Q1vD$J{0?bi$#W_{m&Yluhn zy%5*$_KaO-jD5_Wf^RzNo9%-YazlxHQo{uEl+-c1u3=-jC_@Im<`P+9y_F^z?etMq zwb2#|9=(v6b9EoiN%jzk$=eQINX~hU{*a4MZjy#~&91+)igLl2sGfN&%7UBUB?+Ra zBN}8=NIgK_p&lGuW8rst24WZ*e~_6VRA{2$#02R{H)4gTXdkH{==WVz{sfK%|qZ-+FatIv_Jp%iTB9 z%;Z>_=gSl#n;8?nVICNF72icOHlI!3IpEWDA^!kz%Hi1vu8LO=+KG!xo(K_rcjkoN zh`6GLc`HV$+_!RwICRL2kPCACpeBR-ueL+I`F!s+91#BiY0rJpvnC6{a6)9wMg>$I z2K#*^rE-QlGhcQXp_Q62)acP@A~8ZP2!d*P2j4&tun3GeIZA^jQCZ@-wPfaB7kN3= z#U=?U*f5;@{uQa2QyD8*LXF zp6@`T;dvk}P8s?BkpBSPf4R2k4^VTtS+$_M*Y=qQv`=An2#M8&6g}qId7*(tthYav zU_vHb;JC5`b0neD!+J5?^=u*r=%HfY4=^MEFb+(fj_ zcY1VIYdO$*=!7MW=y1$L%esU3lC=>4V|I5Kjn8HnndZS+vSORNPL9w0T-J4)R0kn( z9xeGH4R^Li8OZiV6L#@XnJMI1LkYDuf^YyC0&n(O`%F7iCfgzqVI6Mj~XPGxdwJ5O_( z24{GvN;lrPf4nqNfNpH|PgF-_ALU1dGf;sKs)i|?1?b+#1U1`DLLMZ-es|Y3WCHf0 zzMi+JPHTo;-Msx55>)5EB@|9)I&wMcj8b7FCV5wVQ%#B2_a!cQC~tkbjFbS~MtgMt zl&bRH`>7WI7fGMp`um7w;R z-XRd$dnPCwi5Cs+F@%cEq+0@i%4`S)$f=TqaD_zN77uj@E$Zuw#vQO>hJ~0L#S!8M zZustrpCi2$ow5N$06>ZRsBmXOPJ~dGQ$rNatcou@uSVq9lmHHImf6!nW<8eoiU$-V zoH=f))VZsDxryt#UcT*`Z+zGKg431FldttWCj$O{-l?B+W0d($Wy%JG$nhcMRZzy3NqZb=&!^tyaevPgciMsZ+aC69tN0jOUREP z)4?0Td8h^8NN3}=M=Hmi*q2%NR}u#;V`IVo4;10fC)*HR^FtC$qikqodKxm8bbYL&Djas~+E^0A}T}?&w1@DeR0lJE&phjOEB|IO8!0@+6 zk;YRDUW}s#8o~sHKPrO95D1?v6lBF2^|_UoElbXh)48H?CE~{JUgN49SecHUZ*>VX zoW^gwO0#G&pEVy1-HIGCFZNWu2xg;#n)Z_Wd-+^D0M*Wy&$^6Hjv_aY2gVSkcr&>8kxl+!X$!eYBTb#?X{dTyRlQ9##kRrbW1 zdQ53HoQ*@v22Nqenum{2MuP6rR%0-jth3B9h53hdZy8|i+)N$1h;Ybv=*-y3oa5om z(Sic=(rCd9*qZX>?obg?<<$Cm^FdyuDfMUi8%5^BO7%?(TpEbL9{x?$0o_fF^8JC5 zvndn0bVOe#xdtX=zm-=t4L3w4at&3)E^6DNm05k~8TaZ#=<*1csg{Z`V&!r$04u!^ zEw1iR%8C_gv)#x9hgO}{fiDO7$;z%Vxo z$at#c7ManjBXPx@+(jm4B4MavjPv+JLIb;Vu~u47$rw%UQ!#d;9B7%TDtumvf9f-kL<|F5m|e-!ZT432 zR+-_upUCX3wg^WMLOWPy{XKRU6b^j)SFv`Na^V>bm9S-q^?{_R(tQ!IRbqG1`&V2Bm zr~fay7UK>^-dyrzJqi^N6*bedOg%2bDXnKLP=~)x$E!V zr-8+5vGkr3#j2v<@k`gUVRGScjITaO@M3yCA#wNxq!@?NRbzkYItL^d+N7PwRYw>~ zV2OhE(Vzm@zq8Zjmi z;j?N|houxB#RfpY4Na(_fHSpXEy@>)tQY!gE=}e_Vxpqvx+#i=acIL75rP5KVAXlG z+=yHX+pHpwFURp|&FWlxt{)o7ZGrNK@*%4~GjJ9}-}g8T0p+(E>-wUQz)>fMi?9dNxgaXf}*^X{UA z!$W=ZPm6jccgc~6?)3mN zAyiwVzWr1&5NX|g`?G!aeFg||sx)ow%KrdUHx+xOo+O##O!+Ps@+amA@+I1eD2EyG z+e}y8akvvQBbN7)hk>)2`vgxs6g*?XnV$PDrq z{#}Y1UAd?~l?M{dsf+Z%fDT>eV-F?AkNDs@HcNv-X?w!u@@a=I@+bL1APh8YHK;Db z5ZI{UiYi}qUS^Uk&3x~eQ5!xONr=KoH~5{-r!^4q2}*C(Gyec*!iWP6OZt4Odpd=y zX$P6u*Xc~tpo1P>zeyXA;lsC3Kmw$dlGQVrivakY??gC_Q-$bpnAY%6;=*v}KU$o@V>QQ%gyOx( z&~4Ntaz3a{!@fOKWap5Y;b2pWpmaumq(?KOD1njHSX;S1ZZNwoAvI42?IMouil{{W7RqNy@s zNuZO}nnHAGWXp&EkfL`KL>bfHB^0KPVC8q0w(YbX}|8zeNm8()RX1 zLPYtN6uzUnJWdQzKZFy2vKZkA7f-ebeUnlMd52>!_?_s#kz@Y=(oSL)i@lk5ssP~G z#ax$)AMxmR>+VpwEjAS9zULBz2}4tVc2LC#if}dHxt}T(Ch)W`cogf79o@(E=k@* zpc&C=6EBqv`60dDj;b#U;P2I!bnhTrdzu!U7ho%%3J8KUIxB{VMLke1C$NXtbVRF2 z#?jk`5LQ2>gEc0v3FzzO>fwo)FtP34Bc;3P`&-I`UM$P zGv2A0MTgK{wCKOoo*iDJ5j&{9YNPsRrh3WsJ`U) z?rVv?;Hl<)9T=^Kp#Zk2+P(2m#M{L}LA6KURRlsEFS}fw6I;OmjIi#arYCr*-_LHD z3a?6U6==;wiNbj(hxp%D{8)#RP&gVpHg^n^@I)48w8A-5xZ6Cm*s?PJ0FeoadDo{b6g)CK#MBODNp$p30vu^SK8QtX zW!S`97KCS-!sY#(Z<-XEXP8CNhzcRq30GIgwaAw-P3e4)Dnv^4!h~NYa?AxMKVqTc z3AgO4QykS%0{QxUAPA7Bucjzeh8mR)3L@&z*Z%-WA4xTPD2-Zga$ z;H=T zI$()WLL`j{ek+d+xY7`&?(?ODIfv%m@ z?-f_ieEWSJL@j%KqU`E!q76Fyqd(FuK%g7lSwcKVS}3)mbSh9PTlHVP^F|lP&3H}2 zqbN$RB_L06?e2jlRNganVkt<^35|zGgkEoT-ttWsEXSw1aSSu_Zc+*1!#TuzDC1#s z>5ga#0!>;<$-+sM-$EgD;3+H0hg1eK@4qzmd8uE^R2e-abpg>P@#e@$)oQD)B#jsL zEx&|OvmGypf{(NLjPnj%NZ5wMy03T@SwGxE6zD>Knh z8Rae1Aq+KVcA4`nGti+6xn_CZXQPi^YR#EnjyWy_1d`#Otg$@M;kD9sm3)wagERSw z*87D7jqaiVIg*+aBYR|T$-WhlSFJQoVa2gf%#(EoB+lwPQx03#B@6SSnXk}AW=*_T z4Tui7lJPjmWY_v4XUnerQ%YsBIjauSzV=MP@R9@2Ay=&1LGDvId?v}qWaw7r-4tD~ zHz4>+dzy7GFQJ${o3AwfUTO{zwR&nG9wPj(SZnmWpox)A0t6fLQZGI8LLcl7&H}Cf z07{AU*WnN2#&7*^%|pQe&4zV+1x0a?6;PNNmY;9^r<(IUxaIqzG{`Ne@aJDL{TIx(9F7cT6^_P{xAWYQvU$Py;(87 zKm1sF`Ku+^#9J>9aD)=SnJ3L}Kd0g}&Z)r<(Kk)=Mr@{PwcYBfG;S`TIG;ZxI&wVI z)Ke58V9uoTNWgL)q>@xHyCM%RsEdzGG@3ITy+RmC13BL% z;bG?U8mOrLijMcF2=P8j(HBX;04Q9%ntac~e7=MzXqXKUH!C-xGHLVWBw@I1pOR)x z*SX~Bm|p(?DWW(I{>$xOGQZQ-v)A1Y7or>?FN^YjW%h(GPHngAIxqIjHPhd}pBff5 zkn7K7QLbc0@l>V%06{xT!W=xydz3q-xd#d(5j$kr-I^nssls2R!ikO($a$j+O!fWB zs4+UKaJ1lELDs01D{92e<$NG)2&+{ZN>$3Mi#N zpql(lpHDRQowUoZva-i`T#Pxls7*U z-CP&lj8j=lu#$uM1}fjZx-r3x$9E@y9s449Vs!J{Xc6MS;Vbd#_385w!~-t*Pnr#jeKLL|hZi0BK&x2t=CxxF8&iE|u(nB>--s<4zoIm$s-&>kz|# zDsvn1KmZ(xyJmh92(Ocrcx=pZs&Fb@WI3R%fHOLds2S*nzoiKP8K`eBB_rsWo22nf z)h#bSB@A|Gt#b8V7ZM!QBZs`den{}3GYjoan>p^6pa{d2-t9@L{=g`frv4N>NU-ZA z9~HMnZ4)Z>RzW&vRUv&snC@6763#y`#-4F;2{!}o^ zvdw5mwkQc1)~DMm)IJm=k$zGhcwjN_Qc#`>CX;Uj{Sc{{$b6$YVO2_9=Ak6#awU%W zC$kCD_o57H+Hz83<%jJ=CagR9p}pjV;X?k|`XNy5hm#;p`QL*l`f)m_bH97VX#Eqj zfLDp9G+{3{oVUpqgfk%JW!($Z7os0T%%McinxIom_E9N{b6h?tqf37w4mEyMTw#N+ z^-(4b2Ey{*g-k6hX_s?=;V+KphxoBS!}}P+OaUg@69D&T7JlHR=)i zKvqf`tBPlIAy!C{^}G`V8?2mv+>o2ml} z_V-SI#P2#LII+o(q7mQ#>V5|#V|{U&atzQX-=Z)|Pc_4MViw?$V8Be1aIE<#M+n09 zgS^9{&wW)BH_{;_ zL;LjoD;^AH`Ver@HYZ)W1-HA(h|$xH$469Du5U799ZBWi~9FGKMob5M$>*hSiFJ^B4E zJDP@Qy%Z73YAd^=vaJd_ijEMG4l1009`7pbD54^Y7>NsW@E8|0rw_Mn%J>C4&OwB(F1@LWu@ zyH7fY9Tn%19Mik91>Fi)L`pGX)do3l5prg|98@iQM-hP=>xzOHd@nj>eeBXV%o@xt zJt!Hb)0>k+HfdHPA$-Vr_N@9QAPP(iP8f)$?8YEPC*i-s5!a$;nVs4c!u*)+?+j24 znBJzU3)*zt(5V-`Ve3WxNXvZGCi$J;^eP#nfCw3oc2l}FbW!||MnT7@-Rh^2+|z(t z9qb``i2SQfeNflvz+TA34ChQM(FmTB)rXwAph>BdF_w7p{Gn==EQ!PPgEZLs`k@K9 z8R_18nlPAZch}ifT$||l4AI9FJo5HL-0wMLo$wr_q|#%I=$X0hN#!MKs{a5bSKcVl zpa7zY`AtJ7LMpyjAu*D&A{+NqEUq%RqrU1t$Ep!!zeNjgbyT}@#SpC{qI5oo4@KEM zcckUz(Ks->%un4_ZIj%ZsoUyTBn`+Js1KT&Gv(O{XRni>B+u%bKFFhza?FWoIlDz_ zOly9A$_wTTPk1O{_&V=J39@JEt+>B6X+t-j3Mm{dj<)=TWUAl8P5xGY8lOOpEpI}W3|{7ZIETd9Ad6VDRYdC6Hd zam)6_L&E}|PI~^8n#+2j!WEg@;uqQh@4`U8{H=Eurs16d3^Ue5N{3rgoxm}15L|vM z`+MeQ_g+vt!5!wL6N%N)BtI#sFf9GTIU3m5luDZf8?F_Bh~NY{*O)8!4V?caqPXaj^o(toQ$&f2-%XYtm9Cb z;h5*xD}}NtdmWsRlo8n#*_p5J`8U3w_doFb^?Bdd{kR?%-8yH1eC5ear5d4*l-r4T zwBysJSrqC{UwvH-e$T^9vg^_&n?cLex@x3Q0MVe3RG(f!R- zrWFcm-=l8I!P^Bn?wh;ZT(-YA;6DuDb~TLtAu?L;&Y^}i9Ukx1LGNM>>db2!SjFb7 z3}NodtQl$-41=oom?%ZI>@+fUwZgNNGOvRFjCS%(Zmz(!PoNLMaHsFZX!Z?FD|f%} zum=WkyqCSBu)o>otIFSp!`)!qvlEf#Kc+dBEG$@`zw%*@kFToM?x~wU6HnOpZK+M- zjPTcCWE8QwaS46Y=a=CEpUWkeZ#JI3TCOPI{eDXPdI?;sFLzvuDB@Z6YMGS{{HFIt zj3W&GV{sm|ROiL?-FU6E!6wU9?9p+VHKID6aWujclxQuW6s>8Zq?~j`0hXG}$1*_*A!kfP(C* zyvx#~m$BX_NI9!+#9#b=C3VT|U5xjd&!z&jRA1!l?i;v6+tUW1Eb+E(r{%@0^6U~x z3x)*xXU|A!sbvdQNJt^(Db#$rK>HR17@ra{x`$Kqo<>`%tM3K(64*$nab>S(qAj2GjNFFgM~T7weXyCyC@@cRgjhh9^*T@V{CDz*vcBoY zR%%wfbnwORSJZ=*lP7o*70t27#JvdF+Dec03;K0nkMpqxmfE0Jns2>cmf3 zWML9>hO5yCzHFvuENfIE6S`KDZOv0M`|*$bsu=yr=FtZSQx=m#{3LblQ-^Qj=wOB5 z!WlDT#ml)sj`Hun$G);|lYDP%rJb-wAFwF*BxaysGJ|y^4j4HZ?H6ISWKVPGhBh=y zGr5J~4#$VfA_;Xq;?p9{D;W9>T?A&U16%7U`Qobpbxxxw;GJssBl{CwrM5##+wBJQ z^ZnTFU0MCxrj(`Xxx@$44nEX-1PwGk>MzT!k6)pRUQGcw^nGeLt%6EwMjGYP{62vj z98qWbLeMs5Y-YUDo>(0W_jD2oZUJJBa$Ls z0FaYPc}iL6-|<^gG&2!36pv|cdJ?LQ=k`PHr(@fJx(hn6yRE&VyjwA~UPrfFL-#H8 zQ|JsUmBSM6r<#_0(vySOQV_bTTy6M@b}Dp8e#RG7pY7+OGLJgm-; zs$eFQuTj=-Lp#PE!MyA>wP*tStur=FvIk>6V0PHCk!?#g_T;xConzREpM1td8>3Uf zcX*dW=Rd$G=)j%2enOj=Yr-gg&Wutwd3czn=!Wq>6xqDa-mk#{yY@T0pr7}f(&~yA zbV7f&ZMT^R?ca+Mpd}K6e68*v1&)$wsOyKp2ZBc{p%Is63Lqs`IDIYRaRvoCC0lfH z4Ch(i!Gxd7P{C_!)9f53n9(X4C9>uv{1WNKQd;KrT|PJ0OEpOS;IH?BVZH2UJa5n6 z!n3Z7wNKr>?tY|dgr8b*y2|t_rF>S-m`kVtaeKIwG{{b$VqT06<<8|wA7m%1IXXO4 z4LzR=1bAFa@}?x0bntF{soNXio;lIw#dp3Wc9mMVG))Y29_H*EPK??SBYC-Vv8&w>@j4ZeA0w1y73`XO;k=^L`DS z-!SK;I=hSO3qhf0z%(8O-=M=Yn9P&&>cZ6ZwBSK*k-avw(|fRBn;cnWCf^FZtX`sn z*TSF<+2_Alat~mDk2nYHr&)~m^?6xDi*wExdvVR;mklpjmN3csYyH^7`Fvf8%c|n# zU4CP!B#CvbP@(*#m}Pfe2Op5QB)xCK@$g&=G*Nyx=zc=`nO|`&kn`@IA#lA?w(8y~ zQe)vNA8@X)>z1rmTt@C9N%qB-U06c0{0dThYx#)vpM~5o?x}Gj*pl)4T)+SwRJd*m zLt43-^ZgUlL2v9b9m&r%2eV%GqSCMpkubh{sMU}CT3G-V5I@iwa_$a<2AxfAc#-zG zIV*ly*9yY3X4$@EBmEYKWXWG=%`NXn((}4M{}MS!JA3Z>Tu#H`*G0bKX8WjW^}+H2 zGbElv(`^b|yl(;oH$;wROWL`beM?RXq#A2{bBuuLOo{sYy-H%skV<{srocYh+m#|g zhlpoVqFt`D*rr-MFYB+%hq$>V+}A+89}ht^WpIqLBa?V6`!2)sUAG7Nu3?w!M(KYE z?_6ywPbzMqd46wina{6MHw6_fe2d)eeZ_9|G4sRfn|qSHY?Pa&dBp}9v{IkFu*!#) zqwu>++O$ENtpsC9o+-j8^sUwEpiK*pH7*8HpHi5FCi*By&5vUhXh}p3n__jSo$M~& zJnr!ZP<39J%L@t-t9DvQX)AwSZ3gQqz`U6sR%0w`R+#4-*iiJzq-8hoCRv_4M|niU zQU~Mv&oz^|!31QE?)sLw3uMj-v{RInA`iK)9*jTtCeChz*lR~5pgfsQp{CQa%I2Am zMs`ty2FxjuBastt9mH*3&O*O+-?tzz>lv1@_eVICD6r~!i|!c~?^>6LJaG(u+=K=5 zh8@leuVv& z6sG~_Wf5R~adh7qY#?xxoCx)ZoFTdFVG-BdCONjs~V|`-hL=^f>nj>`#_+Et#Hpy^Y%QWi9YzbR$Drv;CQ+97R%6yGmD~v8tNo z=llk4+c^DhZRQr?j!GR;Jq3T}G`n;xV(oKPD8G=#%%o9PiI9wv{CXZ2$qFWkQaK(E z_z#dmCMC}w9dKr2BtZbKe623tZhF$&Na`(%n=!qfu=%zlT8dd5$-8Ud&ia;EZp==zFOPgQKitZFHCvoL}e&;=xeLc>iiHxt{lI zy`CB#H%*Cv{TOt6eO2G?EjQX_Iz3tX!i;_rc3~#)7yE;b`tTI-x7f*iYW_naH}5!o zKzjOqmc!GzepdGP>X&s)u2SNCP2X2SMqrbuFF(b;i|t0>0)EG(yh>QQ;gdJZ&5Ed$ zTUeG8se2Xc{;1Nwcf%%HPHz;nltIrdcZ|v7C%LzdH5CJ}fzeS|LN}#XH@+ z%|dOpNM3ie(>`78&pDf@Ps|+?{#Z zab9=3OValCq0*1zTOX_R#zSItYm}G8M)~*-j!_xYPH*ZE@0K?qT!yf&$Vqt8Hm5NihqZLYGubbxnq;% zi0(f?DeOHhlh~V>GqWpOQo~df*rq$8b`o9j#YpmZs!n^$vwto_2@he`6OeM8gtoeKfjpL+#7;l zhvZ6yP}rIGh5!iXin;gEqNM|@6jwEPZKXPUJiz|LNWRQhq$1=#rVW#@suJfDiEy-b zsU2`B%GY%l9k75IHxFA<*O^$81l~QUpz9Gzdk6WKw2ey&68n81-t5e)ea74B#*4PX zlHHg_LZBX1RUxObH4;z1{3u-;JeSECYI3>TuLx(;d&T9ZOi_L0DbJ{7n=Z4AW+~A) z{u7OCxo8vuu((NGQ2NW$>z*m;?96Vw5oNerE7d|i{<<@0ah~TKxOm6P&owuxtclCj z=Ze5WI zBynlK#LaH7j6y(k6UXVix4n7sh6{QZ$+uz5`WDuLd%?}unF+QkKU@|iJi0kcF{RQ} zJ=$h5Jk8{J`DjRCq>ef4?|9Cx2w7maw478=kevq56ZIgAq2&{7mPbnETue4YCzrvk z$#0BzMlR^xUTMCPY}^-bb0;^@!&l$Jx+&b-aqLsE)bNiNl$n?9OLIg|hxJ97fwO}? z{3LL!_HL2Y)`gv)l!8~T%SX#vgG2A1=qr~4xIX$HD!|4LHI&?!U?%$cn1Hb!D=$t> zrgQu@=M#oSG`r%Fmk^4w1lJn4hr%Nt8HDs|`c2I~$P8LJ&m7 z*L}fTuM!-}B*2($?i3ed3xY<}U+i}TScZ%4oec8!=^FC!DQ;t_=g9xvbGd4?$S>`G zJ5;k&KGjQTmp{K3t`0H{(ulUq+drMhF&uk8@U8GCz~t(%z`G$PBx;p*$Jb>ZZ6yzMgS_yC0 zJD5To%;mDy_Yz27u*n_i#HjGje1Bq9Cz7=>%ER*FE=j!4^A^bt?aYKupiQf#r|Hsc zAl2)x4{QgGcq6;~SfN$^uvfG}i|O=FyQ(Kz70Atn0(OnC3LgJVuX5gu=uAcDGCwX+ zPo&ZOdRxW7y2%c)bWhm1quRhu-!s_ighd+QjWgPeaqGU-fsEukI!e$3SKhQ>2JR=&&~FyA(5)Vy={5CtUq;; zm8y_`|E89KOU?R6pC8!n+2p8mbk_4`H`m>Sid?a-%j(KN=BW8w{DQWx%`99e4F&u} zCrD%N>T-1y7~gx&Z2W*~v$XaO#BFEs$g#ztj9j^26Mh^jBI|O9RPp@PW$w9;^Wojv zE9=-XVV=C_c>&8VGNcSn$ViW=|1$v*Pv19G>zb=GXMev{u)vr4*5y!^IhYO!Tu%<` z508|TBEcmrP;w5Zl-vdj#FCrq#X(s;??yQy6FASMM`jnI)E zlf!tDC2cN2`R9COug}ZmoeNIvrrp?>4R-4+-Km3hulMBzTZ%htWtSn)8Orxt$!Zx1 z+y?QJ7}q`2-?yW)0#6@jQ2Hj=`&*S5pIzvBlgPWX@oM>sDq!TsoBsBJ9We>Y-N$cG z>f3#*1wh)RC%YhS(xKa+VU^UkNIeRZQtOSvg4b-4cQeTc@vq?2n4eFRT!I1#xeTNm z+w(n3fh2SeT7d7JVW0uy`$2NW=a5weD%$2jMR}G6>GJ8+H=HNd8rNCW@v0F_PrJA4 z2Wi{$Dw(u1h7r4fzj+(bAQUgbwn{BXMN*tzyLhvdoKB{v2ob$fA~LEZDpsN-2#Pd$s*5$%R>9 ze1y3y&;X~;&wpxNa^)W}jbtIVi1K8m44t;+r11gMMG@8h5n?80p>8aW31fm@_c|lW zObt1w!yx^u#XRrb8;O-qp{^sMQE1_nfCYDD`;M+Y=2NfvtS26h0m1Kk@d z#}cbOv|_68Fz(KC3o8FF`jjQk3Vv-Mfs|Bx6{(H@(;pkjO_WVB#kEW->k21AJgrDi zq;KqL(wz-_pn!|rc0*Eqda$9GS*=uT<%xqMP5$3Q_+&{%y8LD-YJtB>4YskM`_r&P zc5$vgdaiVkMSc$?oVNrLT3QDo`}}YTluo~IY(shI;Lg0CJDl=J1oi&tUAvv+%g2Ut zTD$Vvk57#yd~0`4DH|=i-R!pM5@uVe?q6 zl)xzkc5lvUl>Phy1FtI$Ki?u(4D5a1e*oryk|ug-f^?b9^&2iA{07pIyPZtm_@rI> zt0j~v5@Ix~>e>n?H8O&Koq7tvZ?0yI-{+cy)k5IG^?w~7m-LH=!Ihn0#+qES6)#C+ zD`ZNb%lbf^hwvn--{(Me1=Dn=*-qrnxZVltF+A%zIuH*z57si6-0b2btM|t>R^GFrB7@|PY5%n4 zOWEeUaR?f;l>>ay7KBhv5RDWfRPi{Vw%+ENzB;9j;{|#!b^qwoC4GP8YTyuRxKw<7@cj5!C zF|Ao28z-W?2JX7|7nNuvc zki_12OStNJ(~psS$}c@WX%8uf7iuZ5f$pcIYQq zgPK+^S71BbShM1cE76xDL}yxZe*+&~ZFEwZ^+y3%BkM2JM>=8r&>2QCKx1J44O0zZ zCKwIq+J@4yn2R*Mw>(E2FZ~L~DU4<#?-=NA@$a%5h+|2ERx-=e6S%*vH?Vs#oI_mS zi~WUX8f}43x~=6-Osoq&Y@2ORNqNTX6vKmvX?>vD`(fmh4#R4gc%Fawzj9rA_u=aU zFQ%l42J5J*dEdg`w!@(teWv!QRb`9Mp(Su<1*#Y{yXf_Ep!GTOHnXlbL|7zTsx5$zs#93znvud-V40-@N4U}#N+%>qdE(~(ij+NP+7)y3wefX4iL7z=vWK* z^dG>-FAVF!Bn;lv8kONrYU;1h`P@~7c1!2U)}MqgS->fU$w%Zy+ka*W(8*QpZTucTzd|p^=TcjPy}94{C`Tzd-dU z4VUO#Dzvls5Zvl#(95XrS+`W*WhaqDAK>2E>IJ4c zcsQ?MK?Z%So4%&d1+Qp@&Ui_tP$A@(Fe65)XKYl3m!x3YJOTnA^NWSurFH@JTrd%* zq$KQ=HWNxRfoVod?Ko=r5`pE~nFnQ$=hc>~zN}_}9&>Th1&`|^q>zScQx-;OB~7?{ zPrmT-dXY+JRZ}rD{A8s=#`J2py~=bi0A4>PR4o+2;2}~GSw^r?5_L*|sxFR>zE*wW zh$qfgEpXl{(J!!4h%%=m8 z4u_RpjTnoQOXHW~mpOsLDwFU|3Z~0u)hMMoZL04m8hnohJbvvLL61xJ_W2uO5DcE; zAC$10C^G}F{|FqaQq zL<52|-+m@HeQDE9Xn))N9L>J{`$X-+gEn2OZqyo>Og3|xc=XRIti6t;!gxmE^qr;Z zv9Sd-$HTLu8RMKXO06qvV%56bj|)0xxqr!=ZC^tYr{Wdygw4;$FjF@uN7=*DkI7wx_$kQg@vtj>}P%yI@|9) zqx2fgM7x*IyZ((^KC-eW+}2{=IV@~`!BM>70R(US-MfYU8kxj-3?tR47SZieTQ0LC z7u0ey6df{I$EOO=<*Dy6=G=_5{%bboL~-K6$ofZb9*vTcBbBrApQ#O=A))jX^ir~; zeJE+lgZd$^`E{49TVyFcMY$Ib6GoNQ^}p;jYd?4Hflk`jVk459n->D@QJ`M#3y5-n zp6rE~bi6feS;(_1I?*>#qnNs;RtY{)kff(0a{9R~V ze>T*^VN65ivx@rXB|;456>$wO`Re&v4(#SsxA^(fuPDh@>9}2mfGsL>a9-(mZxkJg zr^aspW4kZzx1G9|9x(9IYJ^t@mAup0yb$iV`f`lO#2VivkSy(Cny}#s{HrfpSR9>7 z?rom|1-;#CGB4lu8CT6UF&F`aESX{+6{+#R0<8~PgAySVZDzZ7U9*T= zKDaPEVG1zUq2E7z7IBjSWyi6k!;WcqKNwzZBrNFAggn|tL6kd1_VMg4%~n3wvvMhE z!Ga3xC+VBk@(y4Ly1MI^PR~XZ(ac&w!bu#&DOm|U)jw#|bGo>huxhwfl4I6NRz&uv zS_gt)sO&C?OGW+0ewJv>;`hDW+=XE21pD7$qo?7xgV<9xGK`uzuvz;Nsw?tbluX5N z?@dEQu$9LcUbv?Q%hUfzMR{VC_$T9GHNgsmz}^H^)e&f3Z>u9#Z3Lp(*xjV@Gb}Wq z_XWgpVe+*K=6x6$2Hj6E;)-;({dg<^b;0#TnKIX;uCf1zUPF<&C5ZBD0iIvkD=BZ&r{Y4j#tJ!ICtAO zKOzHurm-#7>@{4EPlkpYzK6Y!iK)BT4>A3=@fOXuWW8RWxiQj-BUY-3hq?f$99~XL zXa;z+TN-dlVB_94vv3lkrrS)Q@2MGlBz=PxSrGph1zB}&7k1WtKN<7Pnmmh5q=w{k zYXsjQgKSp>_UbuJ1LlV(JjzKQv@5fior7(6<_uk|b^-)2&VO3>C!avW@s5 zR$15>^QfUk9#~^SJGgT)I=VirUn*KPlb5Xro8#UpK1&wGq>E47^GA+t^4po_Qv0(NIMHGmaaM zC}Wz2RJQqhHubiXv%tM<%by#r~2e1 zr$@e;8FK*bZz)F}zuuO*c1_=?%!K{uo$-9~smibRh_LgWKy$AJC-kZ>d}>ui=tkwW zspR#B#hwM?d9-j-*&~Iiw^0JCgQSQ#dK7?F0&1oRkG zoI54PWKk{Lb|Y&)g@TRkx(3JaRkPR|EG|m42IxLAh#o9v<1Rhg3C-z z-Gb`DG9Ab%3sS(LDHVkbw7InumNW9?*WYjA!!o}vsI@)vGbXzUiM^th@BD}*_)Vo;^;jvA zK|}d$xK^;l&G~7Be0rSh+It|qA?N7>N{;rz-5}5?bd59dd_Kg^T908v%F5BVop-(o zxRwtfrL(W4hUuxR+jxgOoQy%isC)0Dmd2<{NhVr*cBx}ufTZrh?>zetFw%Aqk0A5B zEdyWwfe&z!B;}wE^3GxkGSJ{?#R&Zeuoi$D-^7?_nCyo$V_gri7At)bO@DBxr-kjF zQ>E#&?-gJe{)fz|ZQdZM^#<(&)pu@BOKm2?x6r^3a+UTo4jX%2A$pcq0TNF)WhGQg z`a$o?7Lh-dF5~51Z}!CySsY#+h_SZ)88uPxZb{k#Z+0}!Z@s|D7F4m-Nx!(1Vo>k( z2FoJ@29HLmAHH88=S?!ZAU(CXN2fNdL5|1@Yhe<>2bj9^fQdc{~#ET=2b*z16 z6}2Z^rT;(l^p@+iK4;lFOxz~jAlETnFQr4gJ{tvX(3*aCd$fx(cYiQ07+Suqr0{sD zn#sosC;kmnA8A+a7%enMye9(JtV2Rw+!uqz6G%7sLMI9lQG80d`)1j2m!zLy{)kO1 zN{4SH^p*zDNh?TC;>gS$o1yV=f7H+D4;sCl>^8G_hNgQQgtTf473JOZ|6F;@U@}U= zF{(|Xl({Rl#w zpkJ3(@y#a8-*LXv#OLr@_E&#E16j|3V#=&6t*Yso(3C-FoQZ{gv1sMGOrQSHw>ld! z*KIR-6KidnVT}%AumHiUXoxbK2v(cm*1r&)qGGV!@O#msU2x@72XOSh1#N0JqH9?6 zqE7I=aB<(I44sUlw_0nEng}6PZmT+10r=ON?nj24$W)2tDLfcujdE6UbXtpq=whmM z?1&PUFiTqGl=hr*WIx(76GeC3^*jk^*V|(sNHfy?7N+{*vKz)#boInBppW)OiF4qu zpa1JuAb8d)+ts(W;BGx~nbyR-)d$(AIc;)&oz#f6p0C&EYsuus`mO)Qz{A#Oj$Z!( ztWeGH&-|9a!DzD$$Dw{n_6#O6Iw;lEvU$XR04M6|Ax^o#)A~t8Nzv;%dwM3OF5R!d z4NVmaT8u`>V{;~i%O7G4NRl2<0Twz3%Y7BSB- z-ml*Cycpd(pO@?C!jf?gTw;{T4RK`y#>FxnuD9iqyv)=s&IR%NR3@07*TG+N;_rvb zmsFBy1BEL_KdfleQhFNqRV($SL(4v+2B==w#Zn`drL~Ak`OtG2o=hRzN6bPoB!+8Y z+s|06nym;gW@TYwjwUP%!ekm=`j8A@MinNJQ7`a_|YX`6!nLq(v zvDg<7UoA}e)W^j^)$`)se}F-~esA{1r5Iqs+tZbN3#<1b#$Ww0Xp(bvHn|)RwH!CG z&OKeCSrO2FN#JOg#ZBRYpXkH=x09Lnaccv5C@XF7S;w*G8hL+qK1}N>VUbD>a{vq? zxDXe`b!*wEO~(CkLPZ^7ZfSttFfr>=$4v5b0hW>ErC6W7!yNaSoY{`Y5gpO0KN2>N zz-CVvcL?&t@rU-~Px9aa8LB+A8NW!ZtI%CRVcON#8o%~*y$pQenAq&M^4SD5<8LZ6 zIYIHo#dHBPzmY%*gPo@*b2@$4}24;Eq zGXxcB4x~tTk2jlsVHsH3Z0qjTADaFtzpr==arFfB=$5*Qa1+sH0(nx@%7e;>vnv*Y z=WPDF$GKT^*)m<#y31*KSycxKQtot$QS^LY!bnZ6B?k+G zfZ$HiZ3|Nc$OrqoPXo9OvjN;UyAO)r8?W%RxV4K3Q+8|5`cTSr-m^o(EO?j8XAnt| zpVsS_>Fd#nL+ncR&A6_`U5=h;bE=#bNIv8`Lw#Ojgi00;pqLNMeAQ=r$4B)DcITVV zhqYSeqObM>CBG>8JMT67;>4Cn=p-+FjhA??0^1Z#aisSrj;j2Ar5M-P9?41ezUrIY zxdQP5@D~NwASo*53Cz~y2JIk=ep+#CIbXB7*I>4l@7zwJUvTHFY*>MO!q$k)9gS)o z(c5^cU@($cZ=fM*;P_|Pvhba5)XRaNq-jRDg6daCfHwUxR5tj=rm5v?wpwU)FU4Ad z$=ep5u{CVscySx1(lcz3lT!$^!?YFvl(()JxK_)8R&B7#=KtHFXBy(xSbEzO1b#U^f zI!=M5@``9|5F+)RlK&Ej?fY?*FRxQy7{7NcCTbCK44uaXD>}$9>7n%QDTlA_jt%YEO*)%oDW zLF$owvYWe_g;~G(n6f@_b!8MDabEM?E?p9$+b^(>bq8(46Lk)U);SbPJ%%hg2wnM+ z%Jhh5-7q!fw&A|LW4ZxpqI{W87Ftcv`GlhRoar}6itRP(&1m3FOTC zW76m_L3hCr`8okw%}awCifvIrn;2dj;dB7s%L4BzIX$vim8Mrmf#r?E3-B2h9zMWV z$;YV*2we-rcnEayVX6L;yfB{|%Q_4AhkV*;#iCbW^Q_=o&02#X&y)4Abs(1QN8&9e z5A2Iw7WFV4HpaX`_J@&m!uGo;9!ldnGT#j_D!$|7S$u4Hqxsk-JG%#^kZ2Mh{SAAR0z0H!yDKB{{n z2$qXH7Z{-P3SX8F<+A8XzggI9&^HVNw9%(cJwDO<58!JbIB;imt;>LVfN!ZPs^Vq& zB6kjRY!9_F@LtT4uDwn4xq->}p;pI~0=DGJGitfSwwWc~TUgXtEU8SrH+e ze~vSWkos?Y^jDW8E3ba@GM!S?Aaxr*O%1Wc13-M#=S@>fPtXPzeZ6dK^~zeyuc-ky zwl^LRANn-@gLjS`NwRcROq-nBsHo(Omj6+o^x`O5!$MXfR&V|ibV=Hq7u1n=(_?eE zL3kLsMlE|~09#ok7jXWu0`=1@nsefCS32!C^hLxnR^<&x*ps7UI|K9Lt8Ao7;m*ib zt&BlJdj5v}iHV}H<6?F@QI31MD~lit<@hs8dcSTwa#C zh`io9D?ei3+ORnB>fh)hHGf1`4H{t!l;=L{Z1D7jJ3($^=AEKhvQ7) zRYpHPXD#vsX{@L;qlbypq0z9!B#rijy}&bdk9w-F#i^X=3@&AO=SC$DD!B2nradq% z({NZDAUA5=;b!xV3Cp~EaO>C36WUaY)MvkD-N!AM)a@wF%zj1gzI24rmZEaTXtMdp zYdkRiO@-&8_gU&LL0fb)kK? z`|6NCFM2|znC0)cH}YQmLG$g+c3;U|l2%gyC*f zopzE@%Hn*}e*jB*r7YZIW-ry<8>78j&aFtZppsS$ItVR&4^T)PHIrs21Kqa4G@5zW z%O!sDL#jgDOXlI_b2)@cad)xHxn8|M&6{F zVRda^FR}hhn127MI*nw1eF<@Q_Unq&R}La#s#*otIgCtq@i02K3`Wd^z&v^9>|mP> z9U_*w%Yh{^?G4}S@gW zqS+0{_Hj!AhppGSTn1kPsRAiH6qaHh2e?=)=w#LR2XQPFR7P3;h$tn%fimo+S47CVM zsHD!5V`0@P`a7qJIBLY*C>_ERjBSeRJwE2Yqex9382GKcB`iy)vhv$wa{Sz}Kd_A1 znSoQW0uq7LxP3y~UU{O&?A6#Cw=j}8ZEq30!y7UhU z>_-wmHgxns4zFTw7cN%}cQ{|gL(1X!N?%zPr#*7vLoWx2F%#6d_s)`G_a0qdayv}u zXQ0=O)U_XdkPoGK((m_dFIdLuy~JLO(Yk$Mhc=%6GxwjEHnil)lBT2YYvLAdr>G3^ z9$5_Z3}Z6LN9B35m#N(_0ps?zjAhz(6Lj}>XR^Q!0$HbLTG+hPe@K?zZ!r%y6aV~K zq8qvt;Dg8fwtSs+sLK+WJz-y+dC{b)>+kTFY_w<<52Y=^rF47|BV%1K0?CJcHhFP zTlJzZs$F6{*uye|7usdoNij8XBmZb``$yc2q z`OaWOtSEy}fjQewJbcE7b7G{C$Np&O0@+FOQ)x?yJ@k3*k7<&A7N5ofdy{hD+NY=x~F- zk2*I2R&7W!)1W_YN|pKn%19YOjfXz=^9;fim+RjbjL|CuPEA z#+Oedqp{M{D^W9R%PB>NZZ4|bu)DM3t($3eQbJ6;Q+^4yoS$r^n>{TVS$HW_%DAY4 zcZh=Fe~#gj#AqFnez*^oFi zuiu(kvMT)}q;i=hl2Slj<++8Vm-xw-RgSLz0QU>~`Z~z8UtsCg8j)JkaKZe^{{Sk- zp|NWQ=ETD4lVqa>W!ABsQoP>eqfOY+xpvT;9JqI8o1Zf7Vza&8QoRZK*^#E|d2{!r zD6PbDt*bi?o^iD6nq?~E4nH8>VU$#nC;TIS%NbDFsQmH0!?RUn!uEul%` z6>>9G4F8ENzK7ZRzv~O0I8u)~7ceiG2Ag>JHFS^c3wovLoL$Vt@}vo$34y&HYLFTY zZThLabl&&akD1Hrc5P~Y00Q){1h)`8T`=@?Cyg;GD~Wcw3zIVEz{*!J(sqy7lj+LvsL zOVJfntU_f%SZiBdJ8(li z{{cv>$sdU9HzG>oKJ7Kcd;npbL;xn{Hi0j0y3(IdK>N(F>v3+BhDRTuXI9xljHM7Z zy=~Ga*6b1IV=>mLZ4&+sF9M0&0?RnYe~BedY&QlWFshAPj@j;f&`V@2^DF-Rj!Q^6 z5*LZq3wc_|j*F!hCUKML14@?o0x!Ykz$1ns#{*SDEdTI-fbzlt3ARYteG8IL&FFS1 zkmk?nKl6*&ARAv1eDtIcHFHws&2KE43G~C~Q?Q1GsL86A!(Wl#)!4{O=i^(lwVvJP zvZ;)v-H!;dHEQ>|b@{`P(ZkGHMCj*BxsMUX-z_D}E5u*d{utSLXIp(A0Ta%WQVD{- zhehuPSqBf*+5l4m-ch5~f4eC9ef|oyOYE&g^<7(z?e5p+jG>8o z%{R;9zRCce15_~%TB0+?BLb2(&SkWS!Y{m!V4dDctUZ(H%IMz-r;!lFNht^iL4f>9 zBK+Ty$DIJJQVTnG<+E5cl^@T=!TuYzi)HFAmcuxdH{j3R^KM;)RfSJfoLe1GW)HzsDBvu(sobsmE#V_$%MV{_R!oRzk5X#$5-Z$p2yO5pQ zivP#MVnNh%&#ll|-fkQe7}gP!xpz$7%iUp8^-cMucHDw&E{+Iy;p16w?_K% zEVt*>SZ*Uz#5f^X7Bn;|l>Jgn=JuIcICbT{=G=;X1Mp*UHP}EMIg01!nGQ17Q~Po% zMAw}!&LwICT2#%D$gIpK=~+-#D1Tq^x2SyY`zbs=Qd2{yV%y3Nq_%Rp3V+KwuF}Q^ z#H+pY)jsyQsp5VvptX4?#oLdUN#ZntZ_1yj35S=TpY1`WL95j<0Fv*0z6_2gxea&s zD%7Gn3}5R|20z~_e;UBY#g<0z*A$dvFEg%l%fX>hoU2Imq&oZWURi(B2X#ODQ6 zGfIJv?)>12H!(M$CykOlgs6Cq(wJP@`p!Q~&7Mi$m zJ)YESX1*My{rMGQ$bFkmpH0r!sXW&J!QlW0zr#FT3X^*l#Qx*bkg#-ih=1fCXkxl8 zkDd_t!9)UaD%{Chm$5U0`Rx=1d1&xHq0~a#VzwILm+*|~Nig1Lbdchs=VrC7;tv^K zvlZ_RXr?Hhm>(i2YsHsL5<|L30#1a7gszhGa9#OQE8u>*ZFWIoscoEXs{Dv*zG0mE z6|jH?-?NxXGvrwut4}XchEUe0_53bI4G35YTl>rvR(++8cu%=;fM=!jmtPx@8h4TT z+rvj{@80MfIO{gy=U;&{_=RtmDxaJ?SEea}k4Q9g?`slpv9vZ9m}PVWAW}wvbXR(c zS+G4{t5|2Jy|jv_%*m)y;5kz|gysE@rNpB3fLE~HvS3?$%0l!KZF~pCr@kHk4H&G= zSNR5F^q;KzR$N`Hy2RJatHE6o?S30HDceO-{2I38pL(#oohxP*n1=>&D z%vB&QA;D#G-7zmThJn|bb@or{pJM>g)ZhrK`GNV(YUj(Z7~2_dyhqUZ%YSg&gG-Zo zY$JeWAOCkz*9%nC?*D5pthb>ut$vAl3F!w<7ZWc|B`dZ8dF&nHnxMObQDlCKwR|}5 zljyDJ`Dw>OnV5fYVGW}-OBE9`I2c{KqBfEkYbIHnyeQv@z&BPzAG^q`a9vb*;LH4} zsPXKd{(N=g=+tR~ONH-@jTdn3G+rrUua(4nshV(x{;%Wr{tx57!oj)Gon}2K0(zCz zwwgIds(w~^ChdLu0XK2LDKHX@`px!MM|%V z*7qe$uNs=R7g!pS10YM=2$)Gu-W7CH8@Mkdy9wjXhVLjs|1!sDQXD1d{koTRbMT=A zW5?#t-VwUH3rE90xL>}Lx@yQh5?^G|ppsgyif3U=P+S4g*x`rC>4*2!;Blii-G8FW zOVHg4J6&~c$tR?nld=dT>xZR_mj13Z<=xFjW2ga|1g3Hq75p}d$|#FAQ> z^d3mC)BQGW`j0`-!~yE)seqoDVBkMEpq$-HYY;@<4p7?ps{T1q}F60*~ZLjnM3YVhBHm>dt zp(OsZ-?5o+@6Bq6kOo1PQW#kon{434{cK^GKJkv?^Jg(h3G~j;5L_&ou=%0AZ;sme z5$2X36GMlQibAf+n3;-jVx;x(jkb?;uRD-)?;#`3P`y6vGy>5Qi$&F>?xcJY24w%E z%B^oDQwP#RBFO< zU90yIJ}_mOc;K2b;=VZW%q9cOt2*qRO+C@E|2^}+f}@jJu30io{vy9m(PY_STA~AN z^LppghpuZ2+)@XH2^wlf>lA4=Y73e!VNtGH9I{s(sY>zCoq2*ul$t!Eoie`*s079g z@}C09sGiGf)@pFI^m814`HdfW0>L|L<(r3abCQ#=FoM zqKYE`5^FC>!$LJ}P*g9~w0pF+&f22QjoUGuILyJalcs z==G5w>1P8gY5#V*-FZ6-(qIS^;j^60PZfT@oV}w?CDLZ`;&eU56AXq7vl?Uw z(M@oNOr@W;3nMtq#(>k02sSC zqj2ROoG-#W53=^Gy}~*A=!Ex&b31Gpc z!yjwX7y(X9iQ79SBpxIp<1^j6?DXjFxZV();f!EQYEE2K8}X_ZgWS9hd)hn0BzsB8 zwU0Ciw9vqB6p?D{L9|`;bqjs7sQc0O-8;3}?YqzBMOz^%^diCXlU6;dTWAxfm*}T( z_ghpZZ`xh48ZJ{`BS?+`w32mI%72L4qu9O>zV=*m`!_I9{7JZ0M;$skfP6|_$ov?z zMIP@`QOEGLM}hnwoNp5befT2{Cwm6Saoz$#8;{cm0d)6%yIJh%nfU|LGHZ}-8Y@}K zM)u#ZIqyuoJPOl$M`^6CYq700f|z9w^012rXT4O64h4NZlrh+@@$a<^Ebr;6y`Ivb zAKZ}bKJ1mpJ$gy#9q$~VazB+%H!Vv^nrh#ZaCa5DcCT`CX26&?lIm%KE8Z2-A`d;gMc1j0&Tc)5jBpO*06ny6 z&gdA!&s*qCc{~Cp+7~K`QC-Ui|5^HyVoTLV*_(5b5R*$)2L6+A{h9-FraGj zEB>k|PG>*lwe!>}F7vB~$|_bMG|?A`|E{o>pc)oFj+~PnW9N#vGD!&R;I|Z9TRn&h zszgT|iz9QNl_ak?ny8y*J33^@sza~YIX!$bNnOv^y)Ru*6)ocnteUGXHuqo+LQXh7 z?Mr=;k*WUQN`*~NZRwFTB)F`<(CE>SLJ3=!x_fYVIqZ{C7aKVo52{A>r-$F~+5MKz z8dndyA>Ee8QofHc9ApqTw~7d4*9_)6l_D7N07;5XdGkJyOr!Ga74XnmTKQQh7g%|3Ee2^E%`r+ zAv|Y)moLqW$@gDv;=~@I4)vqf@S>1|*lQ@dZc1Skq(9HaL`<#ZIS<$g#_wbY7dQ}c zM-{{8JMq)^?b!~*Fv?Qnuq^DcNpp~SoAiNvvX1IL^CUYyGpn#=d8kQ{3@R*Q1;yz6 zI_-=CeOOH~>m4KNnK$H6|Iiy>A0RUVOS|7)f;@&J6ZRC3-}I+|~v zmC%t*7`xC}HV#kMNeR>b4>cp7v(IbzplpMp^S?Gu$5&{n1fP%W#msLt<}&!I1a}yjwYjn9U_7jI5ZCOInZq9gHn?2BCOTTG#vLnEgs)+&d&R4pj5q?kXc+@Ck>Hez1Ys2fu9gU_H{@wn z>{3JC8)$gW$_o!qsOM0gGxb*jhof#_qpgVwJCE7d+1)Co`TQ6~1K>E`f=H?{OA;c| z$yfZ%aq4{gXLs#|c;zlzwov^VeYXP6lwCQf?3GjW2yl(M$>_$m7QplAefQ^)T;}0c zZB!w78(-?4vX16UJQ3dI)a?LJg4A6#!@prKcYVXKvJUU6{6_8Le}O?s>E7A!)9LHz z8vg|(xg2;gmP4ap!td#>v!N<^&vl1B-1jVErPdA{!)7VVUw^}Y{wO2>?fD|Ts|7SA zWl2n1^DiZCMRotgO=onzl`D1ByD1+Dzc-F!s76$lxuF$Z^B~k3<0~ul4C48_qODx< ztD55;0-R*`@toC?t?(U%?cI7zX)fn;fPy3e)sWJ_ef8pJ_Ci=#bx5)x{H#9~&r zbpn=BX*X#Cv&co4-t|4*Cr*w&)!s+E9bp~^-Cu`2wi3mW&z}VsZXYCAax1*N@}C<1 zj^JWF*g}MvuBE4#7$`HsQD`_qL-kC@iAepgb3IA1eH8#z)6d%B`r5A*r;}T^_fpUw@yw zsYcRrrU@=JMc+;DjQs~~&;SbV+!E8^x==R#?iaN6q~8KvXy0cx3>4*y;15{&a#aRx z)I?C3!;2UP%ne={R*jQMp`*cZI|$ko z;qqx6+#cx=Pic^sB^ZxQ80Yxkit))GJy*8}uJc;;ctO8==+|VU4zp{)G|hVUnWD*^ zyFg~Eeny&7%fk|;gmyE5;OK|qCOS7#1|?$`RF&EH=>V~c3HnMv9pZk} z@#C=)j`I9caV9B)?^+58)UVe=f*}ab{a_^08TQP0t(qHblf_WADyV%U`9wbBr}>xa zQR|~^^Hzead@GNdGSju4LZz6z*09U(_HNwyyONLCyOpXrJ+q#ehm~`O!lIgdU%6d9 zI*Sf>Lc|~kgCdEg{L|%?(9KW01e&!yo}iPrR5c%uO{+uScY~ASkaHhborDJVvUb8} z$D}O2cUhR6s9R8!tMcwa7^v3@qkjSZ$RzvwZ5ZWCS_n!KDcm@UA#p8a^W7{j?aLp% zLb8Bcwbe0ZBDWJnAPgTuX*^DeKY`}^bT?BnL}FHthevT`KTX*+B$eF1zteRIa7my5W@=yaB7e(viuWJB8XtLX)rP*XvD_w0hI+O7V zZ1-uQ(~!)ZY&S(LxbsQL59H!|UxSB2GO}?++x_ck(+{GYPc&6L^n^^7d8ETo|L9hS zcmW*h_%*N86gu;?0@4n8m@BGnu}y@vn+cZHx-*kQ`Sls7Sq1WobM7R_)TGkoRh#Xv zgQEBSJ+te$Xz=ip>_&8Pv>Ii@rM6@fQFY22x=PT0>1+IE%Z-%6sIH&5;MxhbKL!wI_CWB^vB>T{7V{UkZnrZ%DsThUgL;JUT_S z01p4bwRV>lM>ja$NK=8a2NEFMsw-c9w|W`Jpp;paTLm=JN?;E7cScbzb$1r-7Q2yJ zg&^Wsg3JL1sr0ki5@KeD-*Dmn2;NLUGoC`WTZVS7a*`NPYSqEHVNC41i>1APqGy0) zuV}dB{MCN-5cb?iZzu} zb47&dG-&C~YPLe>&rLudxk08q_{Le`nl2CGemGjx`7!ta0%}kJ(7OJKS`m#s$d2n~ zBOuxKL;UJd<#V}j(WgUwqSLgR5XW)ZTm79eN!;~uF^=f$sJ`7LA8)ZxJ$#>40^0=J zA@0#8WZiPCi}899txDTSV}%cxE&?_oEoVP(75S;6@WyM@pF23T)aC+{z@KPQQVu*0 zq9;GnaEjn7KqtRH`kQmz2QLk}Z zihKB6j!1shPvmnKyCLlOKygqcczv$Cv`D5>eWeP|_x^WM2)-6uaCY}F&QsRkF5Frv zeil>guy13XbbSY~VfL4S_XK_Hgs4Y&y0B?ct0A1c-f1|gv`dz|GmPDD-)u~vflbb4 zdBMgp9JVy2Rm%u=b4#i7I!tTIbOE3rS$)g!^;}_=4VQN3BokNA1bWk>5^Jd%Tc0t)gu8fK zpjS@kxiijS;84^v6jSy{jbo@S8r9x?2oy;L)XrZM7oXBVaCz^8x*9t0-}7qTPlUyJ z0ker&{RmQ7-lXa^Zfb1C2WagTK?m?9SB`9D1X|)zOz4jq*{Q!tkUrAf<(-S`IoU*T zZw}ych=!E*o_Tw!4!y(DD(7@{An)aIx9Ui1t&X=0ve-#|+TY&^?H~c!?c06C-D-G% zUI6*W3;<`*MG^jZOAik?-K~ngcx#a8u2p~iK$GS7wPw&byv?0>qZRoI&bzbRp6t30 zh=P~4;>%rm6!*G>Wd{?ySFQ8`{dnB&oqibD3DUE8UJR@lPi*9dqWBmRxd~2?EM3e8=X8v2hA6$yUKIVg%5%WxeeJGe{mn~LJ&d)=Z&wCgOF&{)2! z$CcXj4<8LqtAt!{I5F6>N8sU=@$J_mPf|fAhNv2s>-;WCG#4a7*gE0e3BSWZc?8Qv zNMgmpPI{%cv^Aca0}Td+?V56 zk$_eF>bd~Z%t)Z;vZp|IQjE#X&rErQn&QrY32yhKoyl$vpbwH?vIOk+!lL=6^9RBT zPSD9qYnRy=obvF$uWJJ9f!rN6(pl?7nBj$tT`5i51N-!;^}AVy93b9YmBnQV%0dx} z?~60Lt4@WcXU@Y2=ep7?&;;U6iB-@2;}Uu0RD-YgxP$B_^GIlavnw{-?Y{GLM%uY)zS)p2#P|T=O^^=AQH%2`um|KJQHQYQXW_V{ie3x5LRQW)R zVb=W%kIr8RrbwHWT~n5*Ve+NG>y0YDPX_8KRbo>v5H9S+ypC`r2*sgHMs};6#mDYze;}t9hOxASvRMp( zJn8JgncZsm507dN)u7KM_x8|`TOGnzeO^mFz7LDAo;n6z2;CIS%W6RT-=t%+Ron zRF#m6`SbFB2G5mdV31xle(MK_qzTuv=iM=|c}P-;IGbu1g7m%em(4UAY!D?Y$PQ=w zey)@1z63qOL5$sVwNljwomf|ce2=YPiky%y#5�N!PI5OBSDqPXq^GAHPi!4IPy> z6hO}?F@E+OLge&C{NQxDrh&^TH#X(JQxdj7&NfZ(dq%lsAVq?$-FeaS`A!jlae5%N z{myzMVB0g#l){pskgWVLV37ttP8BNUlzTb0)Bc?o%Rl=o4#&uor}%wPKm~9ut%ix_ zV{Te?*tPe@nIf|vYq#p9Litf4+cr~&*_WX#9R!CrwNI$6t}zTnA-PMl`g9@3OkYas zNup#E*{S5?hv}lJqGFf9!IwS9;vl7RB4yLD9>&nZi9z1M|J^j#|BLede?|Ekn*Zbz z9bf&*Ffk?#Pyy@Q8gd!OaU--Ax%^&18j4F*9Y97SwB5#h_!~bCFneWh-(fa|6|;qS z2ea9qN|@B~6xddV%cc0T;e0eVA4J1pqmq|DTUZo>OOG)IaIIGAW@jm-RX2=BmY*9; z;?^q`N6pFe3lgag$XTJ_r@y2D!>I0-Xl(|?yrGg5RVLqn5EDWEx+7>owcW&en?x{! zpuf<);uTG@TNrorZvE%j);TQ+T+2cK>0tneJ=>S_Sg|-hD?8Y(XqV;g>u5Uvm00{# zFzP^gO6?O3YNgPPYQN42&bR6DsP7PNsRnDc9fM|@SaP)(QtVXpasN9H>H)}Xl6_Wv zZ$L*03KhiYnJeOw5C1sEr&S!sF4RK!^x)ZGUVtns#`5PVwBsTY5n<_U?PIu2c7%=D;4)!rGh{lk> zr#JlrA@enEyk0;2Ng%;7e^oTR_)Y!Hi@ z>~R<>{1s{M+Rz2%Vr-KU^Q8!di)b@)AOROqk@rjA3Man2dWLWPrwI4FQIcuqv{>*x z*YJgH2~uv?bmxoG5WRQDON+!q9?bB@^B$0yyE+&JTl_#ro*7B{RdK{_UK@OC_inWr z%yO2IC&$$h zmge_|GLB(zX;A*j$j~Nt&zUO$%;3&gBX!Ya{~Jlroi24SUW~!xuerV;N!Eb>WUr4F zQgu?ikhf{g#b2fjVoMKli|D{*H2b!C!oj)SI)d}F!_kNCOY)dW8U$N!gLlN5bWpo5 z(9`z6aCAbi8t)961-=56LqnBnB*mrbHPUZI_+ltNe;bS`eXPAxK~k7G>CzhW$4`FS zO>#L|dhuC$Yq{+y_kJ>?4FBMSzra3i#pd2sT{TEWFc_s{q2KJJtdFuS?Ab<}rb!#B z-!^ks2J!+`#on-je17aFqte3AEyRBuc6kT2Q%qpYr1uIB9(4)H=uu+YjaH0#)^B9~ z4s#vtvaQc>z1zf|3dQaBY>+=ZrfZSAdOJS+8jn(kaGW#|b-ZQLbS)ChR?ZQw9pg;@ zm$xsXU~mbY+-9t40m=oF#yFQhY`Y!MKhl$O5@lA={-m-WsR0+O;L$q>>?^nvaYfHC zql#Xnk>fEB9=Uu8JP8WUFj}syp;&LgYg-$+O-}gRKr(2X6fTVrVVZ%e6iwpxd4BiR z6(Bj{P953Cjl%6KySm|Rt(o-~(N<@C#Wy!r-a6X6j}=%6V@dktC4VeOFn4`7S=A8h zWV1M+)OIEV|8g-AZ#nLe_*4DvVKYzAPY2iT&UZ=GN;_KJm0n=BB*Va@LG7hYGTRys zAuwAu%fmpuXHbq@=W46r@E0-+Y%SaRiIaR5$hn`K*pF;`OC7^H>gD#>U~@A#fvm%s zVetMtydO8odB#hR2R+%CCdhqFq?s!;=S!it8v@!Wn<1NneS%oQ>GFy9H~p3}5kxCC z&TjPu?#suliPNUa?DannWxSw+XJ5}el4+i{*tH;{gr8%MSyz{NwONVc&O-?cDy3q^b4 z%&NGH5g>#SsPKC!^J>rvqOhu-uy1Q-;KUwuP@pK6t@bSJ(iDluDebcq)zkxu5WhUV z8f{zTnq)dcDbjNr;cH=#qqOg8?GMdT zTv&1S*(Gu0`P!Fd#|hKYkVemjGY2ESX~h5>w~Z7p3G-KoF2($?}AvxwFR_THAA5b|%(S2+(>tprYEc&B0GIdt50`=Pez=`(~o<%(cm5SrZj4GWfK= zn9qxR+UG*^Np+xn5{%7ETA{nGO|^E9acvI~CY&WazBLKvtQPX_Rr~x+b_&8WcL7tz zGCp8-4T@8|;|ZXeZgKrwUZ!UP`JJ&EVySGsb1Zjmh~JpSCgXPPcFu0gi{`Q-M{V=Z z2}3Dz(|)?{vRMmRyDO?UBj)J!!SwqKh0)PY@%Jtsf(-GebG0aIjy;;+3N(A(zV09G zP;D~Q=`&2aEY$X+uY-o^%t^L5YH4~C^|>3!V-Z;KT4z$1);w1-CuFFM{`#C^Y7454 z*yby>%NVzxEFWWa_|m|Tgmm$Y8AV}AC9&;P@y>&hO13n0#wnRuo2{mh6V2iAh z7Jg(owadPg_T%5Z`H4SFo}dJ*Xb{SeRG-RuG2&RxESB>hYu6lyPqzice*4l)ao$__ zWWoL)xky0e}ogf9xf6@2eO1?{&fU3T;C3S+c-UMOy$@% zHu$S*Y;zY%nnmXPt$%vI4~B_l<&g=v_uiDs-o13&oQEyJTVk9P&k)>fJ5yl(gUjDE zv>Twb`L)>I3!6TFZvPw8{c;%yij@z=-KO7q^c?AmoJXK7VUk9TNoxbe_`Py0du8JK zE{CQ34x-@1s)e|VtkGannlSTQSz1{bzS(^N=lvCaO=K9SCH&-=SGYU4gexqlna}W0 z`t|c}?(2Q)&33lTZN+i)if>XhCJ|#wK|P*g zy`$Cm2hgwNEi2Z)_v?rC|KPj}42cwn0?U9(n}qRb_3zh9_W^BBruqnEb;Udm28-Du zKMt=2;A4>Bn8LKHlMNoKUPL%6|N9bl$u{-bF{Bm&{x5vq+-5l+q-w{daeS^i9D!E5 zqu}ysbi7YkdfbBZR|X~B>eYe{krlcB`KI^GHtb#G+E7y2{T1HGR9W+78`u zVst5z-X=sD6-#hKMN%x=w&*2oJ@c-!Ps29km0s(6Mskv}Ru0XCXz-T?9t(*T`9$hA z{;OFQc{E&K8G}E}ky*T+y!jBOaHUxNwOkyBmLfp!V#$V_ls{ESP9w6pFmnLb_S6PR zT|LTtgW5w%9lDdpkCs#9NOMdml6#kqV*V;^-$fCg{qU;Bo^QAr97X-!{0pib8hfwF zvyyw^$C(fWBvku2y{n=+-B;iNX>5Na!5K5^z zm#dM<(YtS=*C-(#Uz7f;-1KfF-DyDO-TWx2@ZtCFS}}__&twq)pVgkHrBX1%R>zXt z@K?wkse@h+EK)V^rN>oBg_VrS!UVp?I2XW{sE6bmheE?8P2Z}UZlolLqDM*0-0dLf z6qM(7DcI8#M~V^`4iR{9n3HwLZQf@ond9ovX+uYhPv)!>U zxm$9I#%5MPn;zO^Wz&rIq)H6bYhnXtbWVYf_=F$-a_5huQk^`|r3~A3jot$!qzhL^ zP|5;?{?zw^QH5kec~i4!N>lNS^3X01+Y^Xyj!o)Uhm*pg6T;Os0%ums{AV{qsB7%M z`Xb>3CluqBXpgyN5qmFX=jL!9-}#nT8v*rZ&91{djY&8zKl{9lwPgl-arQ`kko8h! zxZK2hvZGB9A%S&Ytm)dEhchymvteLb8*n}^#9(P9_J_f;m3(93eV0z)VJ{-?(SOh# zD_6c8f0pdDU+>vBpU9bm>XJni9yv@rGmSlk|%Gvq9xwii&}&mq1)qu-y{(`4?3K261QQX zW;(g6$&kV7X_es6*O4K6m78eOK)5=?+$1o^h!K5e$;$pZzPpsDYDahVEAnzFg1p5Q z4B(bQnY-*;m@=gF;yeIk-K)C&9F>Thn0R9CVZkrq#JJMXj5ucfIn~ zo74|D8(PtUG2gc_eji!L1r0%v)4mVJY>+=^xzuW1+c7R<5&6 zLDTiPZHfg@x(OtwHeT)PK4Ryz=yB3J6Dfk>x?>L8!(4WCY+1E?`Eh&j=zXf#Ub)E6 zshdXfn2o#N1}o>f8Zysd8mAPVQ>>3O2?1(c?#_5_HI%s&TT0o?(k4hHx-8SzrVjjju z{y9neUNq2`gzHk09YNpcTp{S47N^C09041pa+o0n3+_w({gikAy522(sTKaZ9&=)G-Pk#RNTc4VZ<7NY`72_E6rV>~OvO?{Y3X^49W=m={6%rK5s(NY~nYjoO^ z7N!MSm_{{v>xr0dHsuBDB z_ypv*t&*CO>3&#WtNRDnXZjCL(fD#*`7n7{Vrl!lWAw*h`9r#FGi$zww;op&y*K=7 zqTIAceuYy>JE_LPO-xJBcCjwVL?HSXe zICRt9KZ3;=&r;U<_G8V|zjGr&EPVwIjSm?sMwmC1j8KH{*IHZ!AU4yC)@3THm@ae> zw|zx#aeWn3kA7rH5w7;9`nWdl;>ST;p8FB&w81H5qFVk zQa*H$K>hN)?n^ld+w{&kJPDK+l|DmWGxcu=s}T@+zKh_D!w7y8Og)e_N9+8Gn%2aN z>-1n|w_A(j$J*)$Wh(^k*U6XfNqdA<&f)%vq%Id#vBPajjkseUN&JvFn<0sr zqN3;ap99`9HEq#{Yeqim(agW-NB6{D9mgarp0eB2jZnyHDZ26_y8Ot%T6O zds?QM*PS%Cwny@y>CA65Khvuh-0N)C=b*jaxkBgH1B1*%?yN?NlPlCks|jMfR(M|+ zp77fY-}Q5${8XIYRoNEg-XdRYurtK5k74!XNv2Mz)l^O#5%L1ClmqBRl^tU(C$jLjn5V$k(7u9YRMj-SIOe zR-lDI*VbJp((DJTVmn8>by6+IP!k#4f0NHG^IgZvnKpWEk3Jt6cxKpI!aLK?#s_F5 z_?;>Ej-?GGS4r(wUGNH@e=Mz!<-7`CvX~*~=__E>-Jl7 zZd{3-#|4{ZrSB)Q(;022E!3yRH^vxdWBZ^2x$6ff8WTs{|YLpq`_v?w#Qj@jQ z624WeuxB!HI(^B^NM2$}D4ROs-?NSGfGP~l{qGJ|*o{2V6o$L$R-H#^&121YZtD(r zp0|#TS&G9?F3_B4D_NRf@ge6HwN_3bhx*U;84$oh5!Q_z&)MQ$T~|`);_~43vy!ow;CzqC~>K{V&Br8#c4o zfOp3P>>1>%#v9A#M7(fXXD5fVFV+m_JD0P?vy;GJY8#eL6OJKkh6>_A7G)|h))icg zuo|;lIbo=i6R0}}p1VEz!Bs>SC^cqBvZi9Drwdd}36L&FnE1rA#M>wU5<;Je`*^Ng z26^hR>OX*c8*y@)#h~7g(i0eo0JPV!cf%(rN1LIGvXNGru6Jx zC^T@uX0S@qNd;&j!sB}qP=uNiTj%CYY~N3!p^p~Iw2@p_vd(EpTCz1`Hx00Qf~;9e zKNCxv>686o<8wJr)Q0DG4M6E07-VDlZFn9+NRILkt_LF7%J<5T;kF_OuD2IWvI-kP zHDb`=ypy3XU4WE&l+!p(MsysyE2O}dvBbGHrYViB-+kv#`9mm>UJBn~7l0 zs)#!d04Fwqv!16D*|40bFRuSPj5v9l8{6|Yc+2qx3(}qZ-kRvG9oU)ZM?K#P6>*%C zV*TkjgqD-noRz~f_g3McEEEj(m+UYJWbb~DA}phhYbVFcbewF`XMf9!~|+;L|# zjv`WVyh77{if!3fBA-1u?M!e}bU5>pKq(5D!gvbQWrNP{CCZGWYV8OPE9!n%tm^Y)*}&T~RMg?)Lx-$u_8Z){^4w~L)1i@bUnOV{n3zAuf*rNg0IU*PJbXt~x%dn)LfKl8&~ zv}i#01y-jN=|j5MlC<;L!2Ess`L5bj=Ay5W7=Vc$t_v1<8ss^Ycjrw58E-^+WHhp# zrtk8>i1Os}`*Cz?+}()X>;;yFheT{2roaZX7VUhlEBb7Ge9ehVAy#-I7xhLPs0LC3 z1KmPbg#X~C(Ae~FA?1S0p4N5&L34_br8HlUa?;;;X;t<(W5hj&`o3{8Jb-|fqiX2M z`hZ4)@(tLa&N&I(D5m)D_ZI*Gi|Qf-i=C3kqL2530P8GOzN zi!2(+wKFpu`*F3#Y(n5``F?s1o$f|9_QTE6kROP)s|t1eR`Z^(boxSLBrv@+*Nz4f z&t&Gn)vqxQ(zW6ok5=tZU()CQ2iF#E0l3V@^M0q~c)F;|ZZ~MV50$(M=v@gGYOj0= z*zEx^eM`F?_NJ*4RtFurCcLcKj0HztG<(K9wtMdjpf|Jyn9_#8Sq zcTe?podzxyh`a&&^IQ+7YnHxeDk=+@WRL|L3fMvz;RQ(-9VF> z7E-(731iJ$9$8r=7dcs7SolWqZ~fO2!svIWjQgjpUf;9tzCxa~!S+nLMI|E3$1LJ4 zH&uTHiYTB~Y60hoP5tI!;?#XOX_#!IMZ%7 zAWv(LCz#7MbzrbwSP*sNr76otbI9$s=P}wnrJh+GxP6Z+?M<3w_+!dwzKNFM(82TR zCT<^T?5v5>h-EuRMISdjaY`f1XELcvxVMKb6Kzi}ZzgF3vzUdj0FIedm8iLl)%4!J z2)UXbEEw7}&Sx~lQOvQcNJBc8I|MQ1mNBcD+kLStt=ZW$pH5$9IXBD0sTf%mEv}!l zyvCJ^qka7`m5fNSM+}Iap&X{x%qUUaNtSPzjLSCf&z2k{*|>9AjNW52nvPC2CFE&J zWxO{j)yu>1?rZSSiM2{i7rF~A?Uyag^EM|4{JP-fdqXoUnHg72mR1cUVfTy-X*M+@eRJ4`Qc(xZ369!j~9u&e}rv=6G+XI z?Odx!p3czJT$YX1OCEA1qVLZBgaH7H|_i2Lto2bMDspqe3_ zRCZG?wTAI~x7{8cy8ST}c_r`B`c$*3vK@g8GZNd2B|?{jj>$+$u8 z(mnmuLwbHu%W6FA5=h!cDuLR!p#!;XUG}KN%F7mAt7gfxdBx*>-CGp1;bl#b4#dids z36Rcci{oYP0=xUa7q33F<%G=cp=AM_j^xI9wJYh%^~V!RhNXh)-NwG~YH!`tjXoc} zfT>AQNl-wz2m8GG{{T!bT3FY-CPmySOJu8p54>~3)oXz!TRoe}W?U?q-JH~{zX6jk zB!?#_UVdj8DDzHTmgrwGeSM*P5j`p0Y9E>Wu_a5!(HR$Ew$lh4|V=K6{L3A&wg@&Al?#$t;42ZRO0e z>4)d>a_fxFR$&gao)|=`WwU#p&%4VV;^sY@R0&5lRaokhbe1`J`P0`3R7+|jzNtK& zUu?U7m@D-1z**WoHmGho>aLfTnU8~hys;GdVVBHB0A_gN*wgQ?i@c7#@BCu0$gd^k zqt)OtLgbM0c&M?BzP`A0?E_<}VVL36U1u?8D z*MNKLi?ngsQ zf<7NUxGk9pLso4^Rds|VH@ld|ta=NVYQ$uYOC(u`*$X?U{c$97OA8F7g%({FNhVWK z4ADZrw8((S0hXKMGnY2Q5*1;`4C+Tq9O}p3e)pahB&{|Arr>Gmwi?%otRj~+7ykf> zz`EF7_)RufYq(GI!A6MFgq=9lxa763o-NW9-I-o1ja$y`Pb^-_nn!wZCYukt>4L*f z>g=qx$7Q#(_ld(NQ~hvz8!6)NP`n%aJSx8WoZnp`tP4Z|vbj7iHqy%?t(Msr%ZX+=reciWy{`m1N!9RPA>T zwVv|NLyIINNT%&Dt6RD{wL8A+m-WKPk)$(QX)v=Stz&H3o!oc%VPn2MO|D*MKkxO! zDQL@TUAr1lynH`r(wOe#7Yk?_uS(Y!Ox{XUraG!NQk!8eo+ud|)E{{VHxt9D>g*Jia^ z(@zz(@BMn?MI#!_BWI0`tYCy`-~MO$lKD{Y%K|DY&yz%ss0%+t&mn9L@)XPbADj4n6^7*`+kxHiErZWOn{^~Hh zK-N0NdxjB9l@OLDUhcsA1mtxqUYC#zHLAO&rs2K*VO0GbvPqf&kZB67&O@Ut7iMBmJ+KPDPlCz{^+B4=SB1L`Qg;Vn2CnM zLnE|Ies#c^-+}_uFlBO1m(RfZf5nNrPEOO!hep@N?A7oW!5B)+(Q6wz2_k5z_wvxH_jTLOFE>`!3x(k|&ZGMrGbx2gAcGQf<9ITuU}rR!LfR6D-Ze z2i#7*<#zu7#tXxhoij@A3a+GtxTg|O43(vYkr@ibZYSEBv<{W2P*2k9MN4c^VQlyjywy0A~>!<5<moJ6m&kR0dL!pu$32v*E%DwTj-BT3Ndq5vg8Hvy&N{{12hAk-jzLoOgIFx0lX>=tBP(tWpo$0XDF={9Iux+;Mx2fS)Zt>Yh}`QhZ_1Hh8AM)T56C#8K(GW;;e>S!J< zFKDjozw;klHdi@riW<$5CE<#B2ZDUUk9^V7hArTx*b5F*EtXQ+jM-?T%PhyG(dFY2 zJvY(v{&9eYWwOeK?*bN;t8A)DdiaJoiIJRKZQRHgmk-wta{ZT@l@!|`X(ED9$L$g< z#^#j8?~`aM2BDT<=)Qg*jC?}{nl|C$2bkjhI$?|qE*}kcKTJk5Swd+nVdHKzCy{kJ zmA|ep8DSzuqNSROoO|=}*!r6DfOr#kYd`mk07hcAD4 z%^U#?<-BiuG=(GOWKwF-@AE3eDyVB$#UBkT<%fq=^9c5=QNnf%#^Q*L-dc9xO8)>B z1eu!xsilF~oz|a=yWaN4a#pa|)QH(2yTZ$LRLA&V0$5^-)-;t(166OWp>DKq(+(0l zNJm|(RINBy=S)cQkgU#F4TO~aD~n9A8u(8@1Na!-TCY!@46P9pNQAT8J}rXt#5N!@ z5a1K|ew}fc5z*vkS^{n(pC3xo%k{?MM3YD=usjQOH57a`<%5|LPL6c4<~m>9M*d7( zDfo^R6M7#G z{t@!?>xZQ%C?hMe9QLjmjaHs`XD-&UqQ=F8-KFAX6~yZkD$69NQn9N^Nd?KKTY)~e zVzMNSI$8TnoYV@)$+`Id0H!4+Ns>=^R7pl}>dpNyN{b|F(GP=eLlPi*3$F4!L(6_x zz3wX!44@6}_{X0Y>4@_gnKVP@liL`bMpEAGZm&8}7Oz}oXO0baMbw3)k~?8?z*Zxv zYe@9e9;E$gF4FU~w|kdA#ZT$JCRp;N7c<3rv&=-@AAS{&b5xH8Oyt#))o4{`Sp=K{ z;U9+f<@t|1M`;Un4U$lp-273RXr?j-LQ(Rx9?=*{Br6igJHQ7TKhu|{Gf>M6kC0sH z%qvNzlB$3NNV!cT44V6QvoF_Uh0El~F~(z)F3TK5!7O4x9ao1&T{MJiTj@+oE`B{1 znm=ZXz|phE!n>sUv9I}4DDiypqSwhbV8blsN+^0WT3Wvi-^&q6mA-7YahBrpoWyxK zbuULPv!ctiTmyPg;hpn8vBT|g=aPROi_k5xDbm(Rp;4DfJ*T`iHRNEHA8E^l$`YAl zD!Z6r)oPGNsysgHn1|W70Piv1$9hoX3NmDg&>V{3QXN*-I{OEnE%tA6rtC&l>vaT#d?8p$T|QLl?l<9_ai^!ZYsQHY(J zy<=*!8ksc{b+d0V@gLV2dw`oYtR$961sWM*zKpE2?#}ev`r=5*VYLt|TFR!sJXwA0 zw7XN`8}k0R(vi*bq3?3>YuKAx-RqnB;ttoBvpv7E4q6PmSj6RF_~7j_+RK~Eo^eeS z&~NvRF(yhZta+F-u&h~(tbOzb2|;b$G@+6ly?d&$oLA6d8I~y_T&$2m`!;hkl3dQ4 z`^m;uNVO|>*V7Bxxoo+NCaalbD)aD18P(O(61?(n*Xw~JrI3}7$7*TJtgWTR9d%NK z@}~ZHWkE>Ch5kE!BVWsGaLf}k40NznhG#3vc^&m)IeRI*u~hl=!)iLnfLde$G=clC zUcQyWIvbKX>nt5)cI9JN$R3zwP6Z=Pk-NOXyQfnSZ{Kf9Y%n9@RE}b@vokmFkQ?jQ z3q09R*~&1Yz1Q#^?beLyc~{RFaTL}v#?j3a2;6h-+Fecb>O6}=qo3Xw+66`%X>y%D@l5y$dZ!LLY!|XlWs%lh0_wn2nAGf zlI#308}5neTuB*bk4%e*-sUmV^yL!|%K@R-P?vhP@3yAbe04u6^~V5W!rHV+uI8V) zNo9^JzxBmD#xt3CPHH@)lIvwwd2&z#9O)JBn9A{4r6%zoY30)t%yym$PG9m_-iGQb>>Q%k>$x=L%M=lc@~NzRyu}YZKeI-%H8%HZgn`G${{ZyimprYP zWcPVOhDE=9(czTF@BFYc8R!I%k`;2$%WQTxi!q!rQW_m!u2<@DScXf{*hs-AxjPtOp6S_&3}T6Bz`DI-Q!lztzcA&xN`*jN!@(q4fg z2Agxj$eMRh+Mqzv+MY6_X5sk#?$~Uy7;?(B6jcScReDOpekQ8_0KOVo8A(BLZf@eV z3;WAYySvuAV)TqhBk@ST2tH?(SPIgttAkb8$wnoec09=d({C}h6vHD+l99l@ee^-L z?+W|KoN{^DV}ib7&o7*#7_(KTk|7LNfBmK&W6z-j@0==Y=mL*%hm5 zq86i5#l`txNV?LC_aNG-Pm^Lu+<^_&AdKoXv9+gGW^M(NPjzB`wb<#C?#A__0n+8^ za&6BDD`(ww@6{V?Z^ za|eSikjC>yXW7=sYg#beOX<_B2PkcO6kgs78U6^i)BWj}Zn#v=wA1RNn#T=Fz*hbO zp^RuOHQY`ysn}Vpw9`o=D0FRhNXICpu+@20x{oYEb1)$fwybq25!1c-kz!nGFcqT9 zh@EGXOeu};QUxkk;y#;sVRHGrq7aL0b3%=-vso)%r&7NcE@PeDF_i5M5jIb?sgln^ zf|SfGVY1WG1Ks!>X1N*mJ6neKD8^R9nSil>YLS%=otx0ewE|dvo_LCxiF4~6>y$vU z&R~v_8&>-2O}NyU^P=;__vEzA%N(+sVP{!o>+$`G}lX*?GDUrsmyq%Uv7j*Qp7RIBy)2#^5tAE;u#h( z8I196+;P$$wyB4YFreYL;rZdMQ>nompmp(CUnw5D%e6f^t11g2 zE+mguCDSeL?C{^>-D9KlHsxaF~(Cl zlZic@Ogb{cz=?&o!AJ~_l5d9Wh%ZPo^p`GOlxB3ZFWjWCkxewN+D6}JI6B#xBr-IN z5=fTvSSA z?$L)9Ag`j+%dR^$qL>eAo$}e3fz{N@d&j;v@I?%<34UASLD>drlJ$yc?Le9Lf$QPz2hk>C8y zKnHpLoNjXxP|@LbNpkl$#TG{(W<(_=MVs;!1 z(YAL+Sd%)YO+uMytL+(?UX+$%PFshYTZwx=Bb3ugII~&TlUuYi(?sMm=U$`*Ke?ua z96b8Z9272s%}CCo3LxOUYe)2;^ue$J%Bo{gaiyQuxH1*AC;{5qdDCkA{#aicwN1Kj zb*pPqIagfi-@er~x6=YVwFaVEC2l2uL1%&51Gqw%-nQD!ZW#;68)+srn2_r8&yUZ3#%X z{xn9SeCRN_iQ6-s5l118_l9aps%fDDh~r1=T67p`8W+ohV!#B4TTf>1zw&G5FwrSz zu$`+?zmHFCI()bKU`otw@B>=h#+Ij~V}CqkL{6)h&D^$1WVkx5$C(t4m?dKjD{O#^ z)tB`1#gj*>p(^=#8g*NT!7@cAoQdcE063G`vXEt#&6YS-8>0A!`(aR_DI*w?RHtI-KiCwxJ z4Q3YBsH+T)&-l5IrWLZ|Z@FVO;PM}f5qoryy6XP``FhAS;R~=mpz-_JcmDvkO?bb4 zajSC40Bw$;WqvC=#isSGdGCvOZX)(;7xPvB0GwZ!%pA4bxrIa3kC5XmHq=G_c%yd9 zO>HE#^0sbkQF7hcZ+WEBJ`VxDo`MJ?$;hRaJ7QtDD&DWR(qb^X&woL>p<{{UUF z?BNQh!jWZ)C;_?BIMf6F_{&J_x;$yD>d>@0uCa@~rZjhrW$Lu92#hGX*1*0I)}KGU^uY=6n_B*5j@NCAWN;%Juu^Npctch{4m+vKk!8;v zR!2cv##)+Y^!S{b%@n-g= zII8It?Zw0wYU4r$)H6wQN#Z^a&uZf{B*N^ZFWkv$P&q-$o*k%gVTUYa&mvaxP-K*pTZ>%<>em^rV#0GmH)Khk?7r0e;h+n4wHK#qW`UyxR*Pkl# zvmGdNg8a%ETCSb$^u@XNSAYW{%dPCWg;oWYc;@c3_zzD!NuiX7EV~f|5ymZDkv37} zFu90iGC~qWIZD-GXZMy5Ivi$UflFrwpJ-$#5+XBMdOUg(ZEMI5kDWOk>4=a;mhG7` z=9$QwFuj@D`8mT`Y?*m0l+M#)WTN#P&gqrS<-13+W^fZK+1TOGm8`tRvcsFre$WTr z{{VU}Y_VV}LXP!bNWR~X?BkjIhcST|nL}7eB1n;=()%c?H`~jeAQ})yl&j|BI)-`US+f^5TQii>F`!FC&}il;Ds87;#MFk^ z!pf~2sax_Ks2%IU6vr<-btA+vHex0{>y{23A4d1^uE%aKPG6OokkTBMc`>zMunW|PVJV)-L>VS3PTX~+`vG~(w&{fs}cG@^XGg7VB;ib1*>{eQku z%?@3ok_HTiGF};_6b;|JYpo7Z>JFBM{$`tg*P6?!$F%W0cV52)(B?bE%s-2jKlx&L zW>VFe%t2zc^hAxMY>-!5LcUmeE-I@S8HI`@N)78XO-=y5TUNaBEP029c%X#p&zHA5 zEF`M8?QyF2acHscZs+je#|liHmmXqPf_&e1dc?p>FS6xiT}a|k2A36c4VB7M;lPFh zkY(U)9I8nRq6ni)KqKp1J+lWKd0CoBW^1cN%>*UdRcCC z?xR(8V9L9x)#2Y=I_bxOnC$2zb?+8jqRXK>Aa4@D-Z$sZm)8psS#o?k zWplY%V{oIz6k|+xV47Ed=Z|NPF9&c!061f@d;vSP9)5i=+H8YZt4R<%HL|shz7D^h z1XB%oQ+TT+u(UO${o+aI=z8Efe2WC-1 z%n}&v=pzYR$lkKcy)Y$)Rx7x0;SwQFFGKw>Mx+eIn)L{zGH<)_i@aZ7OeAq!<#%3m zUZB(P*K8_-Lr`2lD@t=}r-u=`TXOMRQfueK`E|iDH42_3Vzm_W+k8+h)aTNlUHE>O z2)jmYEbkyJhTnuS-kz964yIWn7BM10Q(keY7Y<)6OB`_k!5StJ#ibcCcWhcEDG*IZ z^upY`kT}mhlkV?#FQyWASY0@XN43+7nbW6-)RnI zaa7egh58&Mab)dtTbfN<6;d!-BB>=E{&c1w%Sc=noJ9?)`B*`J6T<0S8r^`_L9 zkr?*D2+K1KV#`3Np9oD6XfjoQv5ee#fca}P3UZ~S%qf`0N3=@l`}_c9Vl?UJwqbIG zQFMzLWKCjS05(RiXm;T9>xG5=rg>zJ=yReGI>8KcEm%Ug#+@~5KO!hj_{-0kRg`Ao zNurf^Y`$df)0Jrt1hTxn-@l5yyz_T8Va$;vK~;ipTV*fZU$0y2Ac|9-AUW4bAq~s*V2u&G-B` z8FMtT&dHR0Fcs1?oJ!y4M%2{$df~G9*2|2_OJr@A zj&z1pM5W_XRvte+@Y3Z{`pC<~(mjE8@D6{N#)OR-kUzo5TjajKJ+S$>2oPTol2gt# zleoIhE90rGn|OS>&5%`*l3G1%1&7(DW;p2!X_-`-GA{i2dHlD<4WV-* zO_j%SQ1_L;L)M-gGii{SK)_5&-EkVX3Ri=A*Voe*%`LZghItYAf#&TU4x#1$02Rcc z^Re*8a~f0SL?_v^@40E1GUHl6Qx}@gcfT$c`U8N3S|bJV4ViSmRY$ zMVXWmeXKtkO*wm{7Dc6^b_0uSdtA9cWz6Rm1~Js4CRP(%sih;HA87Z| zLpu9Uv~)cI4q0|v+j1`Ge;iT`{{W?M3rA_UPQ0%@IvfXzIKwT<9idWK@Y27p%K>AM z<=%tDvPqVD`?rF!cY1?%k#P8}I32;Y>vv2yS;C9J2NI(c*77O)FY!i3{Zo!Jas;APmXPr}O8_m~z?F*Fse zzx#!MEHgG>2+grL2T)1GDWHUS`Stwz9{wRTo)mkTbkd}Wipj$zy!OOwO$1i}ZsDFY z#~rL_PMI6kIUGr0iP74ePO-F0y*F>THud~C(UJ(W88><}*s|tEqgfr=^}ld`;~C7% zIXIFG!;LkK;ia+C$+Ye6%k_`ayI?;Gj#n>;b2lBie|5v43`qgX)f8OWbecHp9VWalI-^=xd1&t9}lJ~vE0dJcHw?{Mc&>4PN8VUAl0mc6aA z+g(3eR}N$6OG@<@>x)vMtLac&oDwiKiogv5i?mRE1sYPk3YCyQ#E(xQ-^S zUNwO(W`x?19yc6s-b+)*%9u8`WWs`;(>8~DZ#fkaR@Cz4Tq{Q;lvTS`i&;>=3b$6g zW0MI?tOKIlRaLF~=Z~+~0qdyIAqdjN)}AfX#fH?LXpC0Q%$anV%v?RlZyH4_`hP4; zutZV}yhbSAB!ru`uAGubE}h4MMceep_>X8#a^f>Zwdb9mQlJN}qqv|LkU@2>*Jb6B z7l6$gb+!I2`g!78t_~F4P7oD;cOt|t{{S+afWU_#my&G0#5|!gyLmyaYfJKKbmd$~ z+03EIv)gu?>cwxwBQbDDjpx>!h8sch_W*87!&FwaZgL0p!lR+A(R(3vAO?xgABSq} zIpH$7by);Mg?w<@Qk3PoaQHDcj3^``kj?&`@f>-1<5tVXnF*J+ zOtzHL^fR9u&rOIToB40-FyI>j#I$2#3!~Gsrs;`vn1ZC*t1YvY#FOFR_?ddLRA{{T#P zSB1X#K8GYJ?VE`}LGa7m}B6=_r4)BgZ=1RbHN#0;5cn6%p}MXG~kvF=Z7!On|^qCGcBCS>P5#30~}1!KTOz zxS;j)!Wi?jLpwtXK1vQMDxkIAKK7i?Bj@ReX`PPF7j4q5Mv3_Regbyo*Xft+(CO_{ z2_hxRuzGorcaCa)o|wxSsSLrC<;*RZw?;K&RhB+ipPt{Y7HU0I>5?Hr%;0z*m)TH{ zsKi4m`Ic)g%t)`5IauWA>V#^^s&>(Wm8YgJ?GDe(=O{+dm=LVbAdk4o$EOiVMQQCB zoXsuy*G;a;Ii8S7m=olh&vz*JnKUbYATI4xmz$HBgYvV*dp4$F^OORu@@vn2PvoOU(d*4J)<#~fJobxHoWxx z-=VLrB9$Av<>GWx>u3DnfkY}0(Ye~*59@;wEU-#S%QQ~$ScaD;4JC^W3gy{-oEiyc zpEmRT`4ie@my4DE0O`Sp*ENC{YwrnJhw4w9zz|Bn~XR{XBtvpK{XuoqU3j4Uv>p|s#9B^8}w<0bN zck!0-k6Qj%dOE_$O$x`qE`DD;OCF$SW!_F8t?C=y>JRIWW{o79WmCGDmzv(vHzBvL z`|3WWS7!b$T)&r7j~gNV%cEaY;<-NV1c^n|;{Y42E<=O(TC#J)N*QK_DjpU}GC1VO{QgC;MGUU1 zOL+pvsHe*evgK8@+gdWRCGJPU502mRZ!cBf5 z=YkNjuqxH(*Trw%Z?7yPNkCX12-==MKA-c0;Zb!u0DhQ4hK8I%g_h4d>&9>`ET)T3 zKVEz__^5HjCFIq)pWU|!Vk=7j0P)4qmbFDy?F;-Gf9J1OP8<>`56o?Nf z`HsBtRhSUP<#Ttqr)P3TyF~^d2)s4L$Gp78v2bb3i40+7U z5N2f!6rn2u6_Q9=hp(sSiJk|aFCJ$ujV@ggRhu+c%j1#H+Q%De*PS|75*Cj&FdKK- zr0(7-QI|%1yjp+X&R5MyDFR+s7Wa|$ z+W=;DL4Eh|Ju63!P4zFYBjt&d(os@bBw7|de#peXt`h8wnU2U4YGw1VPn2oAlck0_Dq_qy_*`;R(T8Erg^WnL`B zjvpy<<`#F-{hoZBymD4vW`<6uYz&`h=uUERw2JJF11Od=p&ZDu(kIodT#ol1l*F(S zkw?O|<|2JAF<9kv{{Xp=_=eQ^;iGQN$!6q%C7D0ML*)BfOrn^f8N`tzifK&*7r`l~ z5DoaVFywnvE8DZghlU);{{W`@PqXth@W~1T7Jn&PR;(&Hnvl4YBR6h#w`O*hKuI=Z zDK=lflOY^e88Wx!BN4P^sjHaGb))Wf4JZ9jG8yQJ%F70R2F~Rq`?HAzv*x?Oy2A!& z{b`4M&u!%(T&v4;-JJtGGH+3-m(7wgGcA8!9!Cs2ysH@~{{V5Jbl=LH{dr~0c(9oNA93vT=fX_xmMUkG zLr-%LwL!ndiL-F_Y*6RpkdrjYuaynGv1O!rA2S?7%n|2l>Fk-9moJ@&+|in&e;U#~ zIb(l5l=Z}pN=HUIV@~oIfJML80WI&s21P5xL6WeaeYBjleAC8u2p50dA3-^(Zb$2Y_r{t8tOJDzNtxDElVn60M+km{iWVto+5w(AqLSZ zw*htOE!`?`s=y`mHz$FC2j^OK0kLfZT!T}MO%(hz=6@AEFu-?VU%M*HsI(LjsXI}S zP~n28nC!qwMmKb39|L{CLC+E-#e&)`0E@%f@kS|kECsq*n!s%Ev~5qn#~;rP8&P>uLB;vg=ZAk5 z+-NGwM>>V+YhfL%YIqt^^tf;9gUsw&i?dp|j$D+q1-tm$Y_Pk;M0S)}MSnaKEKKai z*EPF!twqO@@59py>lGzVQr6h+Hq`hk>G!e6E3KiHMbuI&OZauTmD2Q3448Fnd{ zJvDyqI-jl@B(yQ93naQ@ZTr!w;r#H+Dq84uGTFG+C03C-gZ0JMFm~Zaf)|p%bQ|}P z`PP_uUnQJYrPb{X1RVU9S7Y_`!4vU@Rg@z4X%~^?J6asM zlSL)VW-@au21PNBGY=GQrmHd2rGFM4Zq3bh)9IFhp>ma?cqC|IoNn9R>*MsMEgFj$ z97th!&#Nk%h-o}2-alWeQb%QK->9r)KshV196fNRIb>-_72ekW0Qp>%ehfvI%hoqa zt4K!?SLU~L!OzV(CK$@7jy0m6yxy3wOPGCMbPCDdLXM`0_E@w)c(BO>chg47T8$Bj zJGN-V%s3eBf3Emg6Hr@f%mXN$T%q9%w?o5U{9{W-DWH}Wc_tTTq!Ohmb#K(~63G)< z9$0DSi6L$q5fwybg?&G?$TeOd#x=Rit15J9WfKm4L>p9$l{@vaqv-fUQ&| zJbgVYfX=9zbF>00IGLCg4ngm9{{WsmdQrfXwW`b%IOk~qA1p=MxmS^9Nuh>qIUY>5 zY8To_rb%{FN^gjB*-59#YCT#C#9;)U6r-hMlD-l)G~8qM_)E>GkjQ31GK|HXI;D<_ z(3aEn$+_qX_KNbUq#a%&bf9zI*S97!tZ&(> z`jC0^{V@%}B8e?#ZxzfVucfi=>w`)!Dt`yV{eDF1AV)G957$`;e1 zlm7sB?!R0%TeLEXn2ldhD4Y~$jW}})BIyjod^^WIDN)OM=AR-O0hmtnERs8AudQVL znCj(XeqZy6-!+(!dnvj&0nm%N8pDT7SG%X3Jg{X+;at~fJZT=iWN0;{iE{F0Da)3& zR8)7|se>k2SmdBX7EVc}GBlSskmtKbpvfeXOYWoFFOvLK-~ONMj@8J+nPEO(wX+bx zn(YZ2CE5_Ys|@nlGD+Th-|+c=W@0JX!k;~=*yxqG#|8EwiISy%S$~e92q=<`=Rk? zGc}Ay(_%N@%MyOcmWQ{&nF#_XV5wOMl4Rwz|#ICq4L8bsyP7A_*aYL;I_)skmpZKM%sY` zsCg|R{{W10`EQ10Gq4uF8&r36=}w>50y)~r^5*z+2_0pL{{VI_rBKp`6qO)db~$m{ z(HBOJwKWj^j%eIzxf>1YaXk5k6EqW3UP&0oJ4qSS54rB+in~OAiH#Vn&uG zv5jtHxu*Q7&|t|FO35kjVMKb~SyJE$H4XO;D+rb?f`eXF_?cUn{5N5pr5USf!3=Dy z7p{`*TAx4545}T$2IZ6nWh#5x0l7PBZ-rzOaG+@sZFZ%^cug?8BZ%zYD%AW``E85Y zFL+jj^8(&v)ciQUjIVVpy?`rAZFTT6^~D%5kyOzD;p?d0w$klvR>J>7Mh%Zah|>1*ZopT;0quN&tU|Z-EI?z%gogSn2rLczp2LcpbC3#kdTv zQ65RQ}=DlnHT~6>LI4(Yu5!NfJvA^ z9%4fTR>es~m8PPVjr+PE+IFrKu3Z4K>#hf%`fx4O{8zQr`D`hRlrx7GlI>pe8+|MLwJsPxqHVH)a8L)Y*crg$=r?h{DA)e zX$zSVAgZiET3F_y@m%4^8{@fI{ICU-sM_cNTzlr#IHsZVUz{=X1Q+Hhpt^Q3)^y`A+YPv>{(vZS;#zqY!o-WfWb1M*yV}avyq~Q4Fa_8M~ zbj0eOKWGupAIHQ2ch~S)%Y09p&rbv~%o!bJXyIpEzXPPx@yVPyi^;C~KkDMvk`{-t zC49^od9tyG%VmaFPV?-F)IQP0y+_uY$1I3eTjtEorNWU6+r{iE-(z282mb)q;z_2K zIK>WMifa{RNB;ooWbdVEHvV|ihCt*cxq-ltRk>(4+G-t*d2RK|rbAX|nnDhDF$+oA zy`LOpwqrLwgvMDW%im0l3PxUh%|2KeJfp|jbLFmzJmcyaGX3Q8PMM6va(>k{ZJ;D| z@cdC}=btN=fmAYNVUiTd(JUEz&aS6ci+>P14x+hp6mcj)9$r6Yis8S4Gj5QtdOj+y z;+P$#&8Y$+NtJ^)3qUhd#@+59*MR=#oTskY&uVM_qOXnXn(4 z3in2v?0#6xLHk@UE%lpK0Y#AonrMJh+L~12!=}QNx~@V00Ng)JY0E6omEG0>3ofqQ zOCjK~cj?y_g}o>=m4c8JdH7=9l^p4XR8AUPE&HaGCkESZ+2o9$1!_~~c5DbUO%tW8 zCy98Y%&kt((0_dKDazZK?DI2E>~lw}nT=nHon)2wrleKnu^m^~wB9>Q0*_(o)rr%d zy!qovp=E+%{roW+HepN1%O$bi#rk>!i53Yri;PF23b@=6V{OIvaUOvvw=&BEr5Y-N zPwUn%PS2LCdBeE+Pg%1V%(A{{Xw<{#bNK zrMoK(sLOK>6*Vn89u*chiePT~V#6TPDD4<)LtTBWR_3+ar#v($t(lOLeDn`^o2#!m+H1XDxH|5us8Z5Lqa;UYAH`0nE z0=@vgeSVlknIMrKQduLiYhKf9^|Eet{&<7@N7*SW-yWG4^QMQ%O3O zspsX4#$pH8lP4NWBspuNW0!Z}mWRGXpzlAKw;6LC+F6CvfrZv8q8VHgJ~WNne^Z8v zNf||^JxxR$b_2Q(c)Ne&tj`W)kT$ZFtcJX|^!`|yMMRt;E5#;aM7xcx6km?t?v=%| z=_=0OvwL&{Hy5;p5lWd}_BkSwz2~#b-A(k`Or~!#-JYVYmX#;LHY+TMO@F z$TzP1@c|Rx?IcIi1hep^jw4ntzQ!MjBD*@+4UjIhYAmxIc~hM?LDHSEh5WgC@yI0BYZ2- znR)N!jZCUZGFg1AyY95&ujA>7yRxT=ToYkfgn;cjXAh>;pgXp3hPB8wIR_Oaau(|es`kC0I8?zh$4KY9T9<; zU!ySzxmBo+p~T#Orua}|NuFCEXo7{3tOePfM%f@JeLZlnyYSg9`!=4Gd@(kJ)E@4<#pV^m*sWkpr%NZ9d6Ga}2Mw<}?d`~2QW3-+fu$hRAQn8&< zL}ez}q~dKkN4)Q8rz}2A%DC^$uumeg##RO(m8Td(&e6~5iu)e_Sg`6OBE|2T`iW z#s2^vm{LP2lWP1=BWc@b;n?cM*Bi@hmy~^+NUWSKW9r!I$)#8!l?-qcMV295=*vy%w=551$Tw(3JVXb}$n)kq zH$4!#JnditPrN)^Q=d#{J3#~GA+oRYi43XvqO$RSCP5W;zG%T`9bT_qFNL~g;yvmf*A;q;j#}?dA%Xwpz{{UkKH3Ci!_Fvh;gUf)WcmDt+@6x!-c4SPM ze5P+L9NMsyY{`-1J=)L3BypJK^EJEh;7y(hlAeAsIJ#E2WuEC!i>T(bD_RxuJK#xJNN)72u+^vDS0r6$U4?7Y z8H}D^GcI0PjBv5bNtVgX`BzPHW0j>7U74jv^``j^GXVBz^tgNzMH&!o{AtUd^TkcK zw;5I2yEx!_x=0emw-2uPT&8hkgEuvJ7%HpIJ~Vyfk}F!ZJ$Bm-JT4MKx9xEZboWt0x@{$+ zeff2!GSb7B%j(6&m{}xDysL1qdpMRkW1dP>9{&Kl-|Hwj{?Tb|bCx1Q3^3hI<%2B# z&mgF;=gY6Nc9vg8L~R)6tzwXlO75dhH~x5rT|10#sT`n`Xv+9^pbif8LtHE77{f9Z zBJrnqZUU&@2_uz2__|_GbXAXZ>14EJ@z-(y+;gTK@`??Bq@XY(cDHXsjYsaBo+Gg` zd5bsG`Sto>ERm^*(mP!Pi~5^NnjTwp^~Bmp$p!T>f?by|g6(SYGk<&GCgHjGYwCxK zYy(wL(Uh$@kU=*6-`5AZ2x{u7WhqViHz9#$pa7{nM%Ad=kN*G|I*RDqaYEp`k@kUP zbyXN9L&oiP;aK`sp9sS=b4LoV9<0H3Peo)@ci8^`#xplAUQYe@j65?kth5A#EvF)X zTpZ4SBq^AY0FG&8%mD(0Rgg(u8>KGYFZy8{EfjIxA+Dc0O4^ORII%U6@s_&zxa-cV zU-!hb7CrDhL5OR9>A;vQjvNqCq&jXv+N)pdfnp?a(bPhq)mgqHUQzxQxrf&Z%4k@M zU3J6?@UHwmobavyB+#2aAb-BRu+U}xE%$Af=IFHb zviWSQdHgg({uwS|BsYH3oS!#cKK}rSw1)bZG`p2a#2JjgZXV0X%YIfq%bFSU%@QyG zN0$)yqqBK!C36OxhcOf|P3;mE_Kxg2MH$UR7PaesThQ{sh{G0QIDxplT16}1yPn=H z>x$)aa>UX~>l}uRtwd`|@9w~WU1Dj+v&1-wYRRb?k)%B%73Kb+0L=Dc zNtlqTre`Mu$r)KLcp-UWj%iT*H+SA#u!l95%gLBK$a5dIh`YLokz2cuO!s5id!LAT zV)(MTH7YeOiU>rYw^eI9zFz^r3gKPFj?y_wNX_o}`ROLxXuGe%pjk*AHNh!v7CMwLUlu*;wFX>$IW-ryjzG+zy#6t4T(iGdur4Z_wU zMEE&!uM&IBu`7(TzLuPZDi=~Jw`s5!O2L1<@pe%)a;gG6fkw2o;Z2zpw1q!hNgroL z9~wFT01nJHoD&H5bCsUZkP}{?UYJun5Jdz$4FlC%SZ+BKL`M#Rmq3tECKbw;YcnKaKue@ocjuRw6XCs=?b(?BeM5QR#yj z2`uwPFpTV1Dp4y&RTG6br@fHjl5MO)6}mNE+gbhXMLe+{Tmu$o+Wnvq6gh+Ug{g2l zp8@{>-HBFQ{Bz3`WXF?3sOxs&(%uDSx8m__<&5THds<-ztPzbPByqQR9R=o`Y}-@$ zVkpBESwJ^CD0ecq5vr-Be1}{_ut-GIJ=zWBVO{{{wXe$sBZY*`6%QZ=*3}c>{M2}8=aVhNAld`jF&2B-N^ErFEEOETjNv8aWAnrbRe`$j< z@Tq7Tcub(>T^t<5GUW1d`&YBPKx`|^(~23=NE$56Rke$@P_AoFO-xBKZ)xc9`ubuN zf=M%o(;0If&?JeWk(-S)q|3z*2igAstIra&jg`zv6_ZAWVJI&Mj!P25EoF+AaQ^^Y zMWzlbsO=F}{K(Tw!gvYH;X6^ZmLW3`EWrCzRT&mb*p${WF$zb3EojT$P zl6g$|iWyd2{h5S((!TLUzi15Y*OvKy*wN06u+8QF0K;dNOumHqD2}9SW`vTVhzqw< zwLI&OX%fpgj3edXor^`0iR*JJz4ON_aekcbz{^J$w5*7|@OO6;Jwu{-ns{ay_e@ z%8f|mGD_>&tvrm;nBu5eAK%RlX_+6g=G)0w{?Q}af@UbMA{yJF81ADy{{ZI<%&8Ds z@-dn1U&4H==hqsUR%sbcT(U4o{{V`IpQbNBOH$XT;H}*`*8@=6XA1{yhSRolFf z$4Nd^0q z3w75%o|tjqp*WH?&*rk(#;ay>>WZOc8@*wE@h-djrWnVWc%`9tp;M?v)&k+v{{W8I zfY>Rfvv8+A|roqM9Zr4D&O`oxB}ZhB-2`vaQUs<-!dY`?5rO=}2+5 zW4o(bkiimL{{W`enQ4Y|m@-Bgm<-2xXamPx>Z^AjmL*?kibEm3HHG4K%AJa^3V1H@ zvJV9@sw0O{Y}U%pFMg8nZx7y&ZJQdIc#`5P!zmP|#-k4#M9(f_NHX9KYj*6(>Jf0- zhFrjT2@5Q)O*eWq2Yce(p03q6bwGq7*osY}qunS?*Z%+*;c-iaqO>HRx;pa3RPKpu z6VUv;i1owMj1#!6+w%Ymj^7g;Up86dQloV$!MCQxcEaYB)Tk@S{Cn^J02o-Z>#u9D z;ku^YY_;D10QbVYuP7&#O+Y_%uEyU(jdc&fMjA7ikXOU(W(CAb>mGlFfNWZ-Y|WdeXkQbj&EC+|I1_ z%VR<=8i?A+f`hKr>(Mf~_;Oj2%Azc}So1Q7Y7U~I5lp)dbv&^l$Oc@pvka7~f+>`L z`aF^9*G?$_)9~&w9&_0v%_AX6B7O&vcCE5nY>@}9^~93Ixro*6nm=isvsrtDR~n|Q zRIc0HEA+&Y0`W;bt0XNsmOR6{fX=YWM7CSEb?oyEx$Qxm8DXy>jZI>H`b6&irdabE ziAV1S(h3^+9gfA?qs8JsAN*rU#}b`8(wt-A*wdaJ1N&pSsv^UwAtch-FYf%b__>ja zqe|2GY+5*sue^>x)faNqij~`*A6=&kTuT(Jt4VKL7EQ&<>EP2**8nj_So}}bx33!T zbH#{&%OQW4OK|wu@Yz4Je z<|MGy3k$T&ySB~s#Dgs(7kMI4b*d#&2xU^O-kNxRXBJ3WDO%k*7cj`6tTq@@A2uHX zQ}o4ekxN@t@K(ZsTZV^Dw8P9=^)W5^w(m2R!zkJjD)^6qHu~WjF464;I&HKa#nQOB z^^TdG$ZMvR^uSe`Jx>^Et8wFMNvPqC-^Yn#k+P7ibTH_#%%p)>R554*Mn%4pe@P{Z zNOahw515x`)Udm&h8^r;OGGg8soxS_;quo(3hoh6kT4~kD)KC^=gSt_v0Ahek}0Wh zdb$9O7!}+#tIy~nnh4fY8kEc~tJKu0n2khgFYlSKkmhEM1bUAT9xcaUvj(N{wGL(obh`sxvi&5xb{`$Li9`YZ$F7zT52Smyn6w2$?`}7J#K% z>T{{_Qwb~v49bHWy|Y|YF4WA}1Zn0s^Tt|Cv%<2Y+9bKPoXA4REJ0oA(;m;-8C7Oji~L_ToM_K@W|^}Y zEUrr}LjYPeb`i~&{{W?XOS3YPg@I&V%$u}W8Mp$wn1oT9k^6p%z?c zCQ%dSGU*AeA5SbsRgVuL<0!KJ=Civ3ZyTV%!xo)(Sxc5sYQp~?HzVLxT`n2D%(UAX<+CN zraPr-^aF*i>JhgDdToN-Xs=bNlZbhA-vtb%*?D<4pZC5rWCE-%A-k{vPZlJU5Z2Ku zbnX=9e7`Pd2E`7_ZDI!CU%Bdk@s1md?_KFi@-+PL&s9T0yvd;cc#v;+8#rTc5Z|Rv z-^&ja@k476YEK%N>1#!ETCejscqA(f#kgJy2(u`>?NvVTd}=B4!o(%^jxUTYDEY!4D?GPeBj8%3IRxBy_0^%nLY zV(Pq6{huG{%Nd;@7DRvhl><@e-xWEJOd>J{5>AOrjU!ciq^y4uZT|p{y0XM#dq;Ty zrR4R0grE1t*>gPV;8wDPP)`N4jD70#!G>rXDVw22f+-5iV+vi~vDQzWIbi!fek)+8g?A7jHo&&A9D5RySv}vtdiJ&xFw&n5QjJ{?Z!qVo9IUGoMxdY}lCjr@L z-yavBr8YP*)~h#-LHI{e&v9HuW@VKhcJApVEB^qg&lQC`zZ*$U5pHFO=jDYkuw}4? zENBsxygquBA51B0P%$N4kA>MQhmFZ)p>(yW5D&$`{{UwCv5Xe5@ueHAWG~)tuG@Ly zK^(FZT8&;bQ`K$%0Gvgdm$b7ve1e(dDcRZS;LB$I{Oy;5M2?ZlYgIq}+hwyd_I`V` z7E@=m<$FZuw5cDK%}gx4h<&c+r?TgBIWXb}9n`s8(#Rns^Yh=HBuR2D zmX4|#lQG^$9e467Fk=X-F6GjjqK>uqf53Xz*A$YLfIxjlwWat&BGT{I>DGZa z%y?_cK9^VU{_lF%5{XsS7zgJ<@u}co;9fO1QNNZmF=g_SjI749wW3l5r@P9LQVY|P z5z`RnUo6HL9ad%~N3ulmojk|zBeB%#51lYzfo~2NnIo$fEW1{Y$Uj^eF1gCB#*cE> zr!Dzv4=hC`noTU`NI_z*K#qZq$HnlUOeAbJvW1^NUDV>Mm)9eSn^$!|0TX;S{JP>~ZWb=kRYZE6X|YBvx_vPeb4x9n zb`Z#Js+w141&_zKFXu*`VrN&A!nCSMTAl7z#8W~{X3i;2(=h51JUF<+{4t|Q#ks0k zP9|Pf;ttNs1M@Y7dmB<2*-fNG4~7_|g}9u8{*3YDc>(INzsSMFwjz z?e7R|yU!tuy-TRFJW=eEw0`q$zPmInBjuq%s<5P+X|~3aS9)#B50+Wwmvg3+3q<+I zXiu&qlJS>EEb}C7rBskxFVHcA|3GdX!gIjGh@va8Lei5x6x-z2fG3FnEXk1l2~vr!g+SIgat zSONIyg1Jb$HFCvxk#mz3bRI2pK_$srM9}*wTKZr+=bI-gNRiCFnU{rNkT#_n=I4B-0PjA1ac8nUwn!FvM%+Fw3ZE`p^Zf0JZiSZD zso|5(I*ycdiliL?KXbCegXd*ll3r5`S^vAZ|8dq6vk~4coBW)2BzqDyJ3~f*c{Ha{L zKGP!?NV2>ci3eAbO)(a!+QU=v;uxDoDKhc}Ri&)Wbx>v%CGkiGke6-u+O)$>c7!tV zDo5RCQb@Q&`HaU+JO2P+BAf5%B86m6*_tpMMvBQI3K`@qB>gcQ%_5``$t;*cwo9y9~%)(%YOSLk&_~wd8)?CC>N2nq+%jU|{;jK0po<~BlyGT^a-7a0D z-hwk&gnQDapI(_vobg)-moJ~p1>s2{%jSwFv`?73C#9OrNtd5Sr-W_P<10G^Qt`V> zoAJVSv3umC*>TUh+YJ=)8S>f7a(RfOlGy@IN^34*OX@6jyK(D_gwUSRf@h8+4C^q0 zs~QF@{oLq%{J9FlKmEtg0rN2jGWXv5isxBlwvR~C1JiBkOgPG$O5duFYsGkT-HSYZ zcBrn{B=My$X;c2!Wxs=v>xPZxjjc5+USR(KF^**1JOtDA!f4tm(bX86nFMigew^`g zngC5zSdmS^?8}KAJ7NgBB<(D?E6meMF-4`$Ai?oH$Td6{n z{4@(ehq(0|K-Qjn`t6M}fQ`VaaII=m*8BAN;jJDOb_w^|gxS|`=Yu0L%dU#O#);=d zr_T-+SnbqzjhwsAl5I<3iII>GEE}YQF%qTVmS`u~QN;=@a{T%Jc)nMMNGU5^#72~A z_#aKj=4py&!)03FP|c)Ff|iYx^6T}*s-g89n1IY=<43o|1@fr4SAF_o5TCQ5s>E5= zTbR|C-9FFG-t&tM#LyA{YkSQsIbxTYii*|RtzTWS3mF-R;k36X z{HaRQ5!hE{B@2E(9SQ5pafP}ijf-%x5r^BJ9a_>>oR22o1h^-d3^xUS@btxLzgtEo ze{S|XsrAGT~J$6jMjI-=C^6|peCL%=K zwPU9I&&s_W;_kI6vAk7xzlVl0{JDdICdtE{cw!RA6GZaLZ81vA1+i@(SpNWXFr`me zWyt2{38{XVl4WTsJC%3$rQri@z9Z*_nbri%ZqXHt#Ics87SSwdWZRbx17>q_!i!*{u8j0M`K^ z4aAAFQspoA&3a%)l@zHAEl`1*lM&-MaMKwhXAK#$w%OI2#LN7*z>4_eT~OMwBWsQ> zguB|_mr^5{{T2wMNKnVCKgh{yPyMW zs;z&Gi%Dxyqc~Op!5qzxKTeZEMFp#6{rOi-{GLY zhTBx0U#=)YER+CJrD)1%r*0bjBLrsVH8Qo^6D9RYl>rix_wRSl4zNcVO*Nvis1jOy z0>-O(VGj6G?Fk|mAAilbGZNg%qs>gA*P)2A#!95+cksopV1 z8E{fFBAbt|=Y}@k+I2N*-gP)Z3rh9Fv^~XDOH_#mMIRa4nLMk8S}ki`LB>&k40~R2 zLQF~p{Qm$t{kUb4Cf`tWf39v`cFH zw6s4DGgHO%>fNIzUofbR4EdRRI(TJ?fTmtd%&V9UG;-+v&76s{p3N>?c=&cre`w2? zRh(uTJM!g?G~JghYadDJC{w0xF8szN^wq1LfS0PGf;emap!9^WgwV|IaK2|uy(qg&wJQ|t`KFL0eV4msGLMsL2x60yMKSh+R;Zw+DU{1eKV=jt zmy0c!{{XOK&1Z!q0$i{FS3ossia>M=s!?+YlSc~|l@=cUF7iECxou2SDVXf;#!FQ?VntKy6ow(uUs%_q(&Ri2JyFxdp=mC zno*>UWx8%gUKMW}$Qws9A)w%cxEOhI@24Y3D>eQjOKu~0tAZ9YJCbf_lochmP-`i) z^Q|j|l)_<*Zq-Jto{_3?#&tb#TP>CkM7ecKWzqc9&E9GB-k(e^#~!?;r_+65^YdN*Dg zZHGvE6S9m-d)JGzvQf%o=3da81DBpP7qaq^LsVrR%M1>-TWuzdBP2KmjncRWv+Jbw zX!Yc2AmBEt!Y{f8BZVaJD|BjN(Uu6#+*jtUi3)-N)YK9;kHo_U?dia(vqza?Lwl+i zwK{&jn3fr`aaK64ic)5dRX2DYt}#qv{BigVaIwo4R%;NLfHIpSeuKlo>5VnYLpmFc ztcW%wzdjb*m#!d}DU^!b;=9S0%tHB?k+S=DMc-8xSXx5ssf2u~ZqI92O_hmSNM*VH z{Gv&nDP8u*wd7qDUQO8>j7${V&-Ru&f^V6eeTGD1A9sF3F}uHqons1KKIX)^43e@sZ7 zmpXQok%R357mZybW533+>LULDr_Y`qJiw79A7)93b$K{z8rnCDhx5Y#L0%M$R=x!D z^}#3=$X+^=!yTzg5A0&+ zC)5F2_kVuB{>~O8jJ(XDm}(HJ$Dav1*XPq4!6LMj<2$0)?*0rAR*qE2#Qy;DZ{_~@ zp|qhpbR1r|d!&U5Nh}v6fpwjT)3ph&yOZhbhndL|E?%h{#@9(SjS^gBTE`!}rv80! zOi4(kS`-?3ivIu|OJ5|tHm}c~GU#rURFiID74&4aM3#4Sk5FkyrD^NKftsFtw2(lx zY@0JKVFUAch~SaMqVrvbArNGjUf*GNqBKuT#Xd&A>cx!I>1s`P{Qf0Y`yG zyiIJei=CH=WEQ3vNfeCHM!F>$DP2rumdDdQ>Wcg{>w~GTl2nqjD=LZ}B9axX^xOTg zl4Zosj5r=R%y%^^MY1K_hmK5N0GKdjE;A88@mvzsKf9FOD-q zTn6u_k~X$$;j~*Nq%E%2xuE)eaN4RB!q^mFUM^3z3#>NHK}sw9De${3D15HPz(~1< z_J-53T;F97R-}31<;}+?XR`^^)=Iu-v)qHz$0klnQ2p9h=F!iYiB>b8@P-~$Qs1#?QG6nO&J)x9}NR2O8 znbptY_4US#G9)>$Rin$!>jLz6S;Q9&3+rLs;@W17?& z)*GF35+picm`QK0H)Tm8opqHgj93LdIn&mdY`lWj&bVv+?t;Z#G_!|J>1C}hKU!j- zJd#kDs(53We)pd}xpKoia$D6*3v*O*Hq=(1JUneSoW;b|X1N-DGsNS%-;dmTPG9}I z-qDvV%(1q-IaqWN&+jtR=47mCUC*xmjx*WZre#2^Qsr_dEXz+8qUL6rD;tNWPnImn z<&S7UP4Ua^QRK{0$HeKFrj$viN_P-@s?!x2T)f{9%O-I~WAMlXkwXlW-@2M%Uram_ zc2{Y~ny9-goXbX$$x8ThYnqoWET+5uhn^zSglSBg;Uh(=Rjny4z6sZxROIUXdX37-*UR+fvVLb z(*bgM5Xj65O&(rXvV(=dXzs+zO}hS=lQJdMjSU$prqDSxzjp}}g}9?KYJ6m<^YX&5hB#%b zRq}!se-DEDRZTs7@FWU|e)%mlvMKw_f7=l*V=ElOHoRQ5W!i|BtsM3L0B!L90N}lg ztJzY=6pt6PYv@dX#UV-J4$v&A;)K)m-5<6xGUavbCTPxSU0GLbyh$iU(zNtQ-u`&* zvYBmEj3CV9KWCir{8B}0FdikV{{TEkCR;S}#tMMB#%#+g5A!Ipvif@CPcHykr-X@)W(evgpAlOR{18Mkl>vI19q3{E4qJ^1Og_qZSO(VtSa;hjc0DM*Z z-_rnY2Kxi@=fjAeI;5b6LPGG9=Wiq)M-FChXONUCq5Go0c|x5xN0vs!t1KFhyEEG& zqpX}mg@?ONvc?bVipL!FuArAKx^2MXN}sfVb01z<%e+d>8oQ*hPP`J8^>79IezTY&Kc9j>y?0`_VOjzIZND>T)dYTR!Lf{+Lk>*Xgya+r}Ge zp(g$>%Mi~i@F*3XW4Ji@VpOi6lk>nF7s$4lo!zbT)Ze&P_+(DMOg-a{`+{?=e$wt- z_N6xS!$Q!!E#Is;h?!PsoOgQAu=k9o#}V!(i2hXVY?zsm9e>6VB-5Q0-L)e+jHVe< zpRvg&w`8_8VB6)G#M0&=vn4KxPiAu*QCT@JATaA?h+w@b$m1zIk+WuP0l}0;<=ew4 z2buK!eD4#0@i+?weE$G;%sBr5Gy34kn}{5QR2jFU`)m-O4rpb?D+;jUNagoC^xh3L ziYG|L(4}~moCXOGyk0M*aR`7kjBb@A3{_W_(Q|GBKIRf&)R@Rjvc;y>qjHXcE+WIr zdSNp$OC?%iGb_Ssda?jFZO@L1b68AyHoKY17jl&kC^JLVfb4 zyJFo9M{X2V<`gXnVNaGnY|6&+*dqkNYa7j1r2#BpWLX}z7INo33BU)iI~HMT&6 zqc;jOG>c3bp)@j*^0s1Gq+T;wZY)I&^waXAbK3$zFl33D;bda82rfQ06$hJJwJ_3& zX((94v4F0@^`?}#M#Hmf6ynT-}} zh>x{}V?FDeE(9L`-0Csz>Q5P33zdpE#6&do!O6=N3Vv}nj)64h~;!~x_ z{9EC@gW0<+lgAW-cgvo8NY#>68*S%`W)XE#l1A!S#Vl2}_zQEPJo?uX&I@HEjTB0u z7E9Y@zB#U;P&wcf&WpC*V^?;Uh5NM|*XOsbaO2vN9YSdeD(ftC@2y5^ax2W^+xtng zIh?FS(KAJ6|tFxLhtvq~>{&6I7 zWn<0}9-NTR5Rqh0G%eo7-c>)ICe3yX`Cnm?HDSxEp3`JlfIIky?BmX(AK|Y|)VY>9BVPU{x|DTs;*)B{oXc;{hm|tjotBbp+3d7l z&diu&XO0~CktCf|EPd^x#UM1x@nxRc3R$NDK$oPhizOFD#~<$<{ZB5Kj@;>YF%>{v z9JPj=M}K+hI&WTuBx5XSY(Q@*mUi*U#lal9RqtZ2>Alh{Y=?qKB$!;WzYU5(_nY~2 z^};lHv{Fr?NNiHP(x3_ig!o zcEcvpEXm?K{cq`CDs;eTqg5y_YO0D_!LDm*!TMkwJL{-|mo}rb-NNIiAC?@wsIa+J zQ${v@>wLbrYf%>E7X#9)DNjGs8d60Z@U=@U$sCZ$-f=aO^QP40hB0N(yIopMGJ+V@ zY6fGb^!nn9K=M-eXVn&Sj4YZc8Mebkp_$8ONeCnMIf^TW} zo_lSPp*c6EU8E-T?z(S;F=i#~iJ4tOPUkZX)nQn3iNhxv^QT^&eVenhr!uD9N075r zKibI(9L?8!I83Q|bj4dUp~pLwVNEhjXo^QY&*_I*q!5{GBpk-_Dv;tOF^fcJ;^Mlv zmK@tGuzu;0WXrHSaIBG)J{%V8{?N>JHN-Q+rVGS*1X+>~!mm3+7K#$pKb0%MkwOEFpoj7IV(X#u5q zdEpqI?TsUXuUR(~VlMH0Fp*74ZtT5Ons|Qir#w979w^fL$w0DQ!@;@5V-UmvrHu7q z!*=`a<%qA5U@;aocosk}{wWfl@r#;iGZ}>NOQ9TB2)M0%&c~Nu_lGcE3AotKhQ_o# zyl%j9+ikq?6EY)?DAw0xvQG5 z9U|IjsyhDwJVelc)0u$^N($yP`RFn)m|?9H>Fk~MYMQj(Zhn|)hh}CVUuo3|H0Lr5 z%(etgFKPB#1khPk7~BcHy>9ww9ioa~4iFxN=AeRj+tp{O~3Xpvoi6hr6m z<0ze_{{T<+s^#PcEque|(lZ>Qh?09&ax&qYU^)8vW%PR*S1B1$JWrI@PAxHQ*}#&7 zjz4>%W!QZ29lf2Knnt0#EMvU#5=$&e{@9mKv!O+eIOiRwl}QwS?v$BhUBBSqHgW9= zBC%wGWX!GH+BdR=V*w+R?Ee5fWuMtEKJ3b}JbKium%BBrjNJO+vdgTCCBzvBaCf$% zmTDFA>rQ*@8RlD$gMp6;laX8PvwR|f8CqL%#c2dF;rEZ{i>Sq`;bz^Mr_=rMsAEd1 zQ6w?7ojk`@ZWHswhG!aZA~s=~Hh7IoERoHtEC`hGr(8Z-7&9pnM%s5e>uLzCndOc( z4|_GW)t6J{)mz$KR_jc6uM_hjnLZWppFR0ts)S$!u2NM2WjmWhoR&|!Ph4hMSa7PV z<;)EB#1)NXaBaJ5Mj>a4Ig3?F(V|F~YQ_{+D|G%<#4^C^mdt3!sKIQFBdygY8ycy~ zp1mMGpkQ+))Sun?~%u#+v^@(YsJE4ZZeGC zHeQMP_^}!!HkBn!0PjE$zg?eKk_O*^>Hh$H@gso?$Q>O}_~Z&b(!D;@uMa_lw2ZuW z1#7p`X*yGGcK(89?jYlMgIUz_D*SY zNt?|LIp-@n&l+XlD+Icd#h91bqL3WI@PqfZ%VaYWO1VqJj@Zhy=T&2o8KZ?H257rY zY3`=4S}+Pp$>pYs9Hw49ES^;&;I}Lm$o;Xm)YhB+?q7;>GgSET3|iTU+4A|AtC^F( zn8i{OOZlop?_=rz0CSWCR;KWlN`@ntUM(qFk;eZ3gQT&I`frUUmgM3ZM%#nrR<7(1Qf1$%iXhWD5Go7B{ z?&SXf^m zQ8mWt0uKYi4p);Zmb-TCzGz)ocOQhCoXtmH8;J)WKgJDF8=^^zdRMvYTal& ztRMdXs^@OKDS{6T`!_pktG#^B^1yp)v4BdN2LN403GvhBF_{X!?Z^@lXk%{F7T-)m zrrc(c^0@;KJ{~8x;fuVMQR%j36HO5OBudvTmhZ6}D##Af68=M;19y6!ei1?BK=_lv z9G}+>Eh6UTSpwTzPhKN+E9uV+@RZWba8z+5ZWqV+ZYg7qwC9N0X<=DaSh`$Qq>bon z<>Fhu{cy?~b}~6xcTp14jyZkPc>G?zoBK+LqjMcuB9i|A_1v}LZzaIXwN=SeLd0HE zWTW^_-XE?r5^FA_X+Cp0 z;(06Y1)5XWnC0RB09MvZ+ntFhavlAkKLh+qG~$8YGq;y6n42%!y{(s>c6Q754o*vX z_}eoiS)cy^g&aP3c%sTh22Md_S&Zv6nY*{scFILb6Wot^nI4^R6`!+NY89mr=3}BW zY^xu`CjS86OK0s~(TFAO8una=AnSE#&oK6ZJdxMB{{ZRy!NXsW%4;M}%bK01c^$umTsc7>G zvMgnkqfn%y_m6cVvk~b>BSR^p>N_*ErMta2r2(4zq^!D?{P8htn}Kwbdr66pv$L8o zfp~QDb?&n7r`?}-h`pOJ1X`9x@=dgYDGsh&W}>}KygV)U$@1I>i&u$91)HUu)m5!z zeYm*k{PbBk7FK08I+)vL9|^ku0PmJ1BThyEUL}%3BvciusJWpr^5EJ1aA%Gr%L3+W z35dq1@6I8#plVX(^&8@5%o7_!B1Brrct}=R9zZssjGBFS!pzgbscI|&cw0(Lv^CIp z=37hV5njlFuAE-`mdTZeKACjRJu?F$@`e#cDEHp3ma}(g>ng?4m|??CO)NR6WYmu9 z)aoRr=@^15hpv-E`H)rYE0`A&LP>Hcl~h-Cr_&Hf8P*%?mw7-{i!8>95h!mfPCu44 z^4`#}tb8*}%UizUkr`SVbr@{4vNnsNmw?#8EK0`Fa@s}SIkq^6L<7yP#SES;AWOw_ z{6_}D@uHnbt7Jn_xVEJ#zdxT`8--p6tF5$azVTYtE?!^D61J;Hn1ybVHUOF8YS#Vg z#M8*)*pNP!qNV)RkvJCKe7ci?dnT>O=Z2LP;@f^(3`tzP!KzBeMNoMff&SRcA&Tj1 zTUY}c#~*WNeN%jLr+W;%zL*G~e`ilrQltu~diWT>^Rl1(uypvEBW!G4jEbhbH`n@NCjzr^Fx{0R ziJJPoJbiqtib*mE>ZXBgrG7QGx^BHU>xraRSIZpUVpf;{W_F!mpL>1fi1m}p9Mz&- z_)R_@r{S-<>t7e)#Hg~oQZ!n5cTF-Ce&`Jw+T5&`HS_0;reSlQ#}-qMGarxIq*-dJ zc4Ko`c8ZaFutTqQ(mK&BskmyAr|?tDr>-+oDpi*)Jgw_Uw>a$0RvMAQ{EY#tq)lpW z7=OM47^b^0J=&)e0l7A<7w3&xVX!LIWVe`O#OJAy?M@&0*?~jE58hY%zO7HDF5w2z zb>JI`T4I8Xu2~4^vX33V9eG#FYzVE1CIG}%Le-O@r9$0QrVKjl5#n&>NcA2u$gRt6 z{zgM~)WA~9iz)Tu3s)}*&XDX#@3LVdiwd|C|fQQFe6*q5i6`rXdWoqPVs&t>4a@2%IrNs zRZ3Yd<;w0j83@y)X~q8l7?K>p&j*$p;*uPWdpE%|6$kcsq={38w66aEOdvUVF zl60g;Q;8X$e>zg1Tv9d$s0jUV3@FJdrIAaPd%-o|O@$B34;1S@yJfBt*>}#y_gC_! zGjkclk;dAOY)>ImV&8m6SQ$25wyp&CK7po`1|2RBznc4Ic|UbU(Fy?@;pd1{xH^EZ zI{k2csUnSouvLtAYZj*m5AQkk!C=buu}cmcIsEzm08A>ejaE5D{A^`t-VOP3O-wUf zZ)9Y!?Zn)zr*|h>X>;}I?DIPUvX)sFhKnBvz1#2gpy`LQSx{;gQ8N;td^T_k`u*H# zNjjpf4vK8lJnC!xFx}&psn~78G2R4J>Mx?x*4@d&S#NfRkV&YTu72qq{BdSGQjHHqis1!2ee6iY-(#?N^;u#{{U$J z0Et39_G3kI@0BDSJCJuC%e_uzyV!?5cxGkR6c%ZCd&S{nFWmFn%NdZ`sizn*!IyG` zn`K!0#^I4raX&AmaeJdKfR0xc;%diI^sNm~cyJI(TQjE~(X#^#rKr*H&=Bf)(n@}~ zu4)9eMcS0Jy|%yJ_)9BGM1>)1z$||1@mSuTSniWVuSN}P1{DT^oKk(>l;&`;%7qx! z0fm;TAHi$fEnu}~n;Cx2MrHPKJI3VEGj|H8c*Ki(scsgNZMxzS9%3bY#PzYpFGAYZ*?gQlP2{kTgF z>`E1pnjn4_j49T+KI@I~2ealIt#_~x?O4=IgF*{wR>TC4IUo#_Rgr4lI&`8;A z#k#GRllEC-Z)n^+wXKj=lIQ!%vdT#v_ukWjiu& zYnE7hJa`ve2?+$7$$F&+KDd`FnMmD0C4_8d(krv+>GEe$v+~?+=2&W#6RSY6%@gQl zgS)O=hLJnMG>22ZGMdun4rSJNRn_5BEWRd$#vNZxd11t|X+a{zqG`cfxU~_KnB4~_ zUVH82CeKQ&M&PW1@dJgRQVy7@0>3V}l;(vR;PDEfe9l^cq|U>HN{49|iwl;HCrM<9 zqxOSrD!P@D7aUasp5B;a9E}{2rF*pAX%JN0NIv*bAd6~_xJiq!QUG}0Qo?=&sGxQ6 z3R0_sT%n4Gc8X?ME9Xtm_sk#gDb$dqbKwF z<5KpJEm~3`eL|8}xAUZFPuB=RB`C53Zu_ZW!~3zgJNn@}k_@w%=cmOHOLG3vx4e!% z{zK+|xLl@MCrKm9%k0#V7r%*#w@$jTzKsstutelDG;(|As2R013qmNw`rsCdmE#W< z$`(ia<83itv*p*ArhSBYD6^gHiV`V~lgKnqnZ79V8kx!p9!riPo^b66SOjUxN_a4l%1{B%0%ovnR4r^tEcT$HIj#x_)!gH&8mPzQM67U z;?y(6raE6!&|;JL{BlKGUO64_VZhpnT5UjUOa{wEcB2r^Wu#Cp)m9sE{dUD2JFum% ztyS3YyA8T+wSKsKyTHn@xsoZCid-G*qAt4m3v#zDQ8fgQT;jW_b;bwL>w{s&!Po2y5qN%fQi1O2BtePa$Fi59(WZ_yD zplBpL<MuiWQE=e)1XGjNH8Ih7GcVc#TbB z-*UI`Ica_2Z_@+q8aXK^Pq{&VrVdzeF#xL-4@;|G73oe^`R|LGMOP6* zh%2*NcOh;H3H(3MVnV`OLk%W*OO{k+BZrpc;j+O^-W$)s(C*yXet3TL$2^>14)IIU zi&0({^xn95rDPJ0HZfc{7Uv%otT1yiNg*uj>`YqW?=9jAel}Trx??T?MUrL^@kU~f z$}x~nFH`QwudX!1t49F$5lpEKr2@$lC}!Fxt)J!MN0n))D{7t{KXwdb^*>B7h|#wX zXLj|b+#$5u!QO4l`Pp+28Z{?XV-0Slm1DQnaj0^+oZdi1toh8iice-*4lM`FdrZmq z^!$c1QC+rXSRuaopxM|mz`A6G0lr7KZhFaH2Afnk*DymK^B=H0aHg$p~@ zW|B{}hMm{axqV!tqv_Sa7t9#a)d)8ocdyeINeqGp?}D+qT@~>NvlX~$jpXI>;lxno zXOG%WRkI4Onta4E2wq7fSF~xxd|v8qTbvLkNQ)r|uHFwT?57L$uPS0lJ*5Om-8!T2 z%TE#qwuh%pzPK6+sPG|LvF_xj#TQZQ^uxGi%F5!`Ynhqu@K|ZV*Uu1{C$ckm99&VY z-w4`|Cr{zSCGx;?61is!rotdLlf**E{D;c8Ms?jqCy_5ilAb%)-AU54uhXrncc?8> z!k~T6&zDR(fXQ|qJixXi8FVTubv`bBxQ$C{v&BVW;#k|`z^g{4I;yzmb8M~u0H-JJ zsws#aSzAeNic#^)y1Taf@63Lmo@~4+8x>0;u7b=*a;|<4 z`NVad7c!BkmSwnmq+S^~_~rb$;>VFBb$gi@S{X>bv}*IgF-@T$R;yj9SghoH{{9(c z%)-*6vqvnQ+MsSu8Ab82-H`2W1IXezXcJILuMY=oFwOtt`@7B{-SFIDBaLJj>N7^}Ty+oQwGa7L5)n$Y#<`SvJ z8jyMKT47QcAZd%%BOIB5HJ4Qcgq_)G_3{|Cy`f=^URx+Knr1_`X67PdO$Y45mMfdp z&gPef7~3@p!=w=|C6-2!V~v||>D|cH>xt)*Ji%m{*2o>;M`+n1WHz}5iZ(QkGha*@ zmo7p{Y+5;4MJA_trsX4BTszRMai7m=O!2gaNh6Ogvin50-KUmvV@~cc@;{;FjH?Km zRR(0$Rnv|{mDX7nc6%7+BX+3ewMHRHWz8nS50f!+xx zY1-KS7iJ3`z{f=2R|VcQVpLBKVH3WLr`fS)ZAf`Wk?r-wAiQq}v*q1cRMng96@hX) zzwVg5m%Sbqw(D2UyMCXZ6H$tMP&E|Cc;R*&N3AJZVb(CJo&{!W7cdvzvd8ya(wJEh zgj!VZFQYHq+|YUAXi1hS2xMs|h15tl?_--#R=#+V8)xEUZr4|=f7j`c+910xbBd*k z(W<|C&mYHSIq&qY;6}T=Fqil^hWr;&iTVEkyb_ztnY`RwcOpj}iKvck22@~2FV_<@ zPON20GMi3ZgW!1V-a2olc)H-g2I>}AZp}TGZ^LHaoyQVo_#@Sds8**!RUP3p8U@_c z{5-iDR|uDvh-k?q!5P&!WimXmtz@ie8q!10eTEE^oa~uddqJVf83BCT!;*te76M5} z+BbTidV^|j5egC_yR@ubbldEMw*5V6<%ngPOl8L7jm+iOw;k9BiTJA$pqh*Y}1(s@R*1j)Jm?tj_ z)EX5f+R(o(?nfYEZ8ncGWJwT9HkgtHb*BXH9a=t>kDlE6P9&NljSS5Wejls@(~df$EHt=889$^%{ZAUHh7_r;FpC5@%vY7u0G zyf&8bI#UBJno9~rAsKPpW@A+X<0U)D`T@QXGI7IUu!J@!d3U@YKZkGE9h{DvEE$%$ zd_q}kNZ6G+c5hYnz*Bsx)~gk63%o%USxu}su?#tsGt7iME*Vx_o}a-#e8qCjU+$QW z2q!+qq^KN0-f2%3ffSD|8&_F8?(5Qgn!x}nmcC;;8Rod26B_uJ?<)JQTZ}GB9K3Oz zAXayFK_E7cJ1<9ma(w>)JVzXy6}jbyh^(u^kXwlaBgb5gYUaZA|V8Dx)OEmU?E zy;u{r>cb9l@+|8;y0KQazl&BnB1LtMV|eIm>xD;_E9~M12Uejz8(x;C{4Q`HpG>)F z8CoQFrl2;Mq~3>?`{1I14YUkq?yf>ASGwarKjnzD^Zvs+kR>qXJ)lmnMzk5-Bt-o2 zU-1smA}nt)uzq+F!#8QoorvmXCe7v}pDwdR z<+8}oM+GE7<>`-Ub@oZuPS_#$NCN)=+Z0HzyMK5+p9sNYHaiIB&Ce{-t&d&xmPtYX z0M#O%m}L>imWid-kuu^8yqTF<>_=&0i;gqDAvon?E^WOdk0F|yEIugi%ukxg$s}%)Z7eWlsnZN$ zb`duM9g{p2FTlZ^SzJI13Lfq|66(~Z-OBST=mEQpD z2KRO0>*a5$7{F3n`v_O`r$aL zmo=?U@G;-v`E9-_Lc7SJme$l?hO7I;^})+FY{p_DSR~R$QqG!B4bR>p^5?&n6)sJN zp`I<&aCirTNdExM!bZ2|TfuC0Gp7Z3{{WUd>00X5VuoJneM{}A#}@EV9=;X)U*G43 zSfdK^x_}t?xf`!vclr9)Y%*qa#If9!SGf-}a!I|)-wq>ztLwGX`ZX9c`j3 zI_wvcuKTx(bAhc19CnEr{he3}@Txx?uf-pNzpesjHCHjOR8(sM$MFV_nmP)6Cvva1A|^r|y3 z5-?8_7L7PtiQ}i{vu4H2y48jvBbd6IfQ?;r^07#F+rEG0ka_bIM*{4ThM9Pih`fLX zspn*py4A-)ftf1s$rz7#%Ti^S)!xq!6lgof<%{weZ4e6qL2n6Eyxid>wCZiP(c?Che@I}*zSqVXx_e9iByhd0?AVq-3=%=#1jY>D+o34u@t*azVd%Dk7|I6(m-0r zDoGsL(n!OSB-RGkutH&QM@`qyk>qizj{2Mi*#*b0*0n~a8!j^Ja~YD#bXj64eKj4V zJv6uQ^`->!M3w~!B{LT?taVblwd3VquTHN#5xkjs)>%kA916C{z}q{LKf2*yWszRl zG#Cx0u{WdbrOb8w@tn)PQ%U7UFv+Bj-te0~A5HrCZHE$gYil`RRS2*1{+Kx#W|J(E zOt;V^pW+BMe5K_zpp3<|ljX}ET>1#~;P9?qDCP>;e7F_Uj3ESSF8$?qJuxO%Dv85( zWF$*B24*#oBf7~Tjxh260A`qsW+366r4hBzJAq|OO1}X=WMm&ZZo&4Fu_XvZ;h5WR zy)q7Q>US1J^1+@t0<6Rf8^r1>{`d|ln1rhEMAVQ*IDW`*_rEIQ@TO!l7`>XYT`Mu# z{KvYc{C`Y)L#52Ly^zu`O&yHYZT77W1W!R6=;|lBb5&ImO#~_ za@3ED8Kr=vCOpw*%hQ0XY8vqX)of*EStD1=&l1}k4X?k3oT|Y17y53ZJBeccBK4ze z7Q9x|64r1LL}Jw1J;64Y+?QEo-~MrWIy$k_XPW55Vzqa!;g9!RRjpjZrI$t5W^VM+ zd^M^sPdpnlX7b`gsJs6SG;b*^oU4sEa&U7KKU_3+?*X}3)RdI`BHLQ+u^@@6>&2RZ z=n1Cia_D?L((%anbVxm#5X#rI=Hncf1(Hcja{Ekwe@-v?(uyfxHjgFI<&m>!!CA%8 zq7rR1@h2=Z`xj~09YV(rLojm|@>Pg5dNOsfYv+Q}!yZZkYZ~^HT9Xy{Zpz0ZQIer# zY3BUthm$jyciQGpY8gSu);PowMzr#v#)O%DMA#T}nas?w)KmaaIMnK+`e8&_Jd_O@ zlt`e42&t&?Ge)%s$G+IhXIP7-@nxn%6+{tv-h1jz^5vRx&FY zKZv)4`E%=mP;K6n>Hhx!Oe#rt6>U77N8SRJ4l!orumbyc;pr)_!(Myy#n)=-wH7WL zPY(VapQp>~j`3}F7b{5J2VNtzd*WuKDv!&0+t0xrG>d+CjyIG#t5DT#k(QV9-_D<| zBv+0&h?trtoQ1yVxCGSJ^SIcHfTv2ln<=RMEV-{pXuF{s+%7u{2Lhv|uLnmoGN5KW-21- zd2<3f{8sA7pNDxgw&#b6Kb=UUKjLp(5g@yW+vQh1cl5w^QVIM#Kb3K;&t4+2qJrX9 zX)U?7*eY`8ff))NS+8$}JIb3%$?qPX?m~HEiKMu-VOvU|+OPF)V-l#+s?f2mEw=tX zhP&_dz-cU}fm?`{vOf`TK-CND&jr?zynHbzlXn}|)~Vl@P4Jh78kV)i$-j!bQi7G+ z5@!^C)1|PGZ2MfQ9=EACZ%j#MxeupwR@~aQ(!)dIxa`!#D;kkAUL9kqC8(9LUv<@~fnqg?v@@dV+Db`vO^YN%cr~P^HS*n?H)y=_L~_wj zFSF+J4h_y(jB-mg!xLs??D3H~iEqC@CTWyizOGp#vN;=w+LC4Auksf*u5Y`ZW-^AK zGYTtGC5zfDk4;9--h1M7haz(9V9XfgN==(r654&PL0IL>M^ny{NxcBxh6IAd)RHN) z5Jd8ZVCj6%5lCTZ=4!nJ)jnqs!6vASFEfebj&+2lMc8V_E*a4e58E?!sD zGOOD4jC={XbZ^q1o93kq@JkfAe4>0!sPst8U^-s5wF;gurEymz)LJ95hi_Ah7}{3S zjZg{az6@FwkwTkaaMyfMw?E4Y9fS8^(9-Vn#xMGMbLEW3X~CL|z~wTTJgUVGo|4DL z`Ip*hT1SZJ$-Z3IZg`S93uMcS6`3rU)H|rWbKDPF*V7h0VWL?Tn?>DCLsP;xvi`p; zLd2>o%OLM9jcyC!7hUJM9+*j4#{iN9NhCy5W~fgMLxH_F>x{5TL0vl($2Sy;TK92x zpx^o6W+h~lUUJILm#$g~`@Zjf315=_eK+>VX(Pc&234H{Y4{M*PU;j*hT|HjrN6B(>l!-1%~55y6+7*=rLQ8_zok7o!FnU9y_-?W6bQG&MH^msG}@lH zLebpgaQ9k&(pUAuO&!6~%5mJF_)_n~i59Xxf(D85%-hKt`$DlsGak!qD0((z7*xNb4UqSDHdNbn#szt9fi%8bb(C|6lOQUk`(qu*i5s@mo5XI z@DxUtYVzM1W|OqC5bFk1p5U0czEhg3@1d^Pt>0Txv5woF$8>-0i}OO6Z9>;gCLO zF)3ow&6vxSjkM_cagr9^eb@sPOI9EPLK*$d2Y?cI_ulID!?26pjije`eCT@M9mB0P zE*7JoONTsZrR+^fJ_TJfP|RAL*~1%Vc{2M=X?->a?$^W1*93~r3A)SdU2W-m{Axbn zt`tld%PPqy3AwyxnyYQj%sP} zYA@@JIF(AFtu;of{w|-F>xm>;0=Z>XuwGer;tYGcy-iLHWRl>OEL!41b@by_OEl z%H?wDU<)PTURho)hxUPwWS_M&ZYciDcPf2IQ~ zX~-&CHr$1_*1$55KtR!R3|q%_xBP!RdsbLI$f2l;#J#Cx&0}rEI$%W_tP4&tz0!wI zT2$<6X@!YfffW|h)LTK|{cUR=F>Fd`C7$7;HV zm{uxsqKhyi(5}Xe*@9U~I%H7z-Io3*!Y%U44yNO1#Bw#==BQn*EwJ)5z@ORY5goPF z&DgZ?X3}AxMYknFjIRoMq^r) zxjZO(;vtpHW})_dnmnlw49p~2F1^P5##?4-Qn;5t?5bjfxsy6%l3VYPsb`jE(~@a6 zQn1E9mI_GD8d&0aq%s?-^$|lDQ*wyWUHa1*cv(`|7H0!l)ZZkVaG~O&jxV_QKF?-e zyYMKDFZ^`##-3nQljE+g{BQZ*?arMIhbgnP7nRt-@Ai-Ugf z8sb@vt3IU1FJztagM21-Msrx3;0kuc<2Y#wEOIb#Ws-c>t4A64NRx*9EjYUR;ATf? z!4zaFP^`}+(L~Ow_NtM_zs<$u>z8yrM;F3nY&oQH~;nR8T8 zF0_h7@Y^A*U>}CK60Or|+8blnuf#D7OrVYLG4AoHTZB)yi~FV$SvRVV3i6HoCw~>a zIdjJZ#t_DuoLZM2m8A#s#qB1)vaIZLMZW)xQtEwOz zy-%;EAi615K*a>nW+@~F5hBJj417``>9!L%l$Aq;YZHxMF@Jbu0Ly%jPkYPr#Kq%A zGx%7rR^j+ky(vs*9&o}T5+o@6N*Z1ZdRP|7_ zSRSj5OvTi10US+k<9v zRIlEAYgS0)Br!&GS#EK}3o|NxdCLhX?$ebJECL*S+QwzwFFd}uKFlCu$ zF{_GGGD^|zD`_dQ#ClO>pb*_EJaDXX3qg`#dFqqT610e853Eb;x^6cY9zz;-FNb?7!h`$t zz-47%wW?E(r-Ogb>4?kKVP&8uBB+O_GwaI(PODUs#MGsusmR<$j6L`3Chm&JuZs*ivTH5drSh#Zf+zkWF$zMK58`H2d~Rg_69 z7~+X^>BDr5qNi7$-A6iM#zs8%YR(u285j{Fy2|lqv%bUGF~_%iqnPKo!heY7qU>ml zf$i*!&$o7^KH$ve@;o?!)&kV{HU4H6mnFsLG zVn41V6p;nS$v!YcZo-&SMZux?e$t;6FjYyRCuXQLQC-c{{uTIfGP2#?afdgXhm&$N z{{ZFS#Hw`~7(`5Xm%c6&{ah2QE0AN#-yl6!$E~Q^X4IF;E`2jl``6i-U+>)^opPyM^mGfEc6+8 z-e#pN({?WQar|G0p8IW^*;RjkIyctBbPPNX(2l^I}$>K^?U^O)=o0Z_@)XnTLh*Hm4L< zFYel*6wKJ6v{^; z8ZM>jB-1PiW?N%^RKzl7dpX{K;x#=@qS`U)uE1qEP^ejk(6Chr6zURa7nczy461suXn}k z*VC6=EwZ!3yHfq@{{T3MwXYSj#jO{5SRV$cPVqF)FYD4#$~LE3)z1%?T3`b4px|0J z2$$CF{C_T()kUL;6gL$~7mH2qN3S!sBN0X#Cuuc1%U&vKd>_2}{{YXktgU8|rFfZi z=x%=Oe>^PGM9$|iqL4;Lu4VqrD^@-R-%;-SyJCISVKYe6Z+h_(@yF36e>nX)isMf& zHIYQjO3m+OU(c7W{{So`auC!*6iHCh8QJf+NA{1?{{T3W47pdR5l-ImgHq!Ze4(dF z9Bu}{Z-Qi&*+K=41xSUadO2Esz(v12TMlk$b5n?nzRj(dj%bFZ$2Dme_h;#hx``su zj-ge?#xvqpwwyS5y`?h>D8fAeq-Bj%(A?Z`{I~S3)H6IWJ;Lo4x5dM^PQ7qjQOs{$ z!KM}o9B^uBF#@qk=06L4q<>rt#jASBrqN3a$oin#Rbo?DB#uMV8HgpDO3biD5sFY| zBUZS``ilcxIJEx&@Ll16SoQ;tQz8Jx0Z6~T3zGE8#q_aQ^9 zNA_urY2z98n?mtAU4JlP9=JG#v(oPeRlM&6qw_UYE4MecZ?b>y!;zi>F0?W=QGL4JTX(2+nv78 zPw7l8l%+$Od0+`5WQ6Rjibk0nCAev})&Bs-@%ucIH-J@72o9%@k=S6Fvn5hC510&V z66z_dvN2N{*X95ik$WGoBh1H@E?YL)$g{IZnRoBRSv;qPS^miQcU(yhSN@sJWMxRq zkrTVIQ`C>M!v5Ef>fC08BP(N>r}V-<**nf&Ty;Vw;)+ ziipo?%)T7QZRRr_uEd`ch%;x{5%yi;gP_<`32yd_LW+omKH_`0&~@eY!6_>^t-L%b zC*fCm3ZK&wOC^^_DHE4Un62;(eK+T}g(SHd40L})3JFWU^UaPLgNQ7~O(LLWh zMU!{3aET$^%u*zc-H2H!6_J6eHy@?~W)?c6z2gH@cU}i?=ZMnxl{YeFk+f0kPF~I4 z$shTC(Z8Mu$|yk)wNf-yiY>{|OuxB_H}vJp60?$$L_4V%NR?rwayQz9iEkp z%_(VXxmR9dpX%EeBMoTxA^s}j%XDE=YKl?H3e~>l*apEMJUqhEo(Ba%t71oV3P%e? za!7gcoldmc>P zlme~Y$^DFJ#WT{{0~DRyij7rLE3#r7)@6_)!6~{&q@-M7YRO>JV1m7Ty>X@4dAJlt zGb<#gyD04XnUc~yk+nrT$f!BuSmDgYC$tyVmHNg3jn*%~Q;o`b5_ya&$m-ELBI_@F zA`Re@6JT)|lkbl2i|aRR_Pp{>3in-~1wy2SUXo2ySO8EwG`Ug zypRCQyf*w4K3#DdmWDKzMnsC>JP~r^L#^Spo}1znfzN*_&|=|AOB*9bSY2yJnN)k# z`?olZJ?)o}qKP(1EN2R-BJ{7FewZkdy9RZaEtZ(CB@BkM+GMrC+O?)5$jnpOvPiSd zL%{D&?HJd+lZvEUia~AgMOD)7`_jK_#bujV>FdmOn7ZZXnqwwaV2(af$T!oqLa1G< zxxu8Rrm>)!;dC@6uv(~zBHFavUY~sqCKJ&bc$zEXWn`8a8rg|rsM&5xw6OC7<*PC% z8b0BQXl@Z9q*NecOF6`fhic(9V6^+g1U&CP)G}Ao1>UmQVLRn-+OUPkRKM3kDfIuY$ zo+#rdkXj_Ui z&b>L(xQxiPSzQPXwwKjS6T+>*LB96M`Qjlr0hF|K zJoeJ~{{VU3fBOD=QxQi1cS|e_Xa!P3q?BRn&u_~UBu^VOalsp<{BI`d-Wq8u>fPth z9pIX0U_}RcCEKcTZPU}HBKG*F($1M-taiMSls(w5yhqalqtmV%F1ceQk*d{{v`Y=L zR7Iz#_oeZjT~B}3nADZj5J0fXp%TA}wdw1HhC;{1Sv4*k9!8%Y2;$~w4(;{8U~LP- zZ%!e_)0LQ-7=jG6!ZDeR^aca^TpusQpOxgQjJhI!Bz}NsT7cIehvJ&;%VVZ zNJ(j=tZ3dGGDT&e_lu^FajhBdODkW5{{X%+x=^CL8o^!dRb+9=m?z&+hSSRC8rd|6 z(~zWYrpW;$Tf@n|m~6zUE^jdt$5pFG9$1sabr+6!?QUiC@L3*Qv}IP1K&c|v!o>`Y zdYa=-Ow`k*q4d!cFL2*xCtJ_U6oV@S6a(BSmoZLOoXu{K`d1beWc*aw&zS!DcVmTW15wWrKn&V_b-hD#=yxu-+Pr0opdvBdm8W0B=wOgqhz&Sx%d^4X5j&Sv1J zO+~B`S>2ou8De0S;0X%S0*oAql?zcuVEhCt(s01fy>drmp`0r8?ILC-;)l ziAHbz$xc7ZZ>|a^%N6iXNtUIk?Dg6Y2>Gev9m@Oh{-IuojA%*99gw- zQ!FbiedbtS%pNRhc6@7`0zq8De#eq`-@UG5eg6PoJ+SL6Ns{+o$CH~d^GBGf?6JE5 zrbp+k7GVDXEJ)teI4i4}Ep|#p_!Zr~-Ti#L&NDfAUaVS-z;~A&Hbu*}sq(~{Ehb>S zv>An9#R^-+aXooc`r&hRrjSriSBQ18qfheR>5WA2LA+3`TE>s>j7FSNACmaG;7OO2 z>0&3dNRw3^?!5avf{(~`+v|ocBRd$CkKTVzr}e`}NkAs}q$2K80aWgX`o3cXJ#Icj ziGSL^(-d9Pm9e-2Qlp z(B33<77xCD{{TyH@<>t`OMsG0Oc_kM%v{wnIPtAKznH=DUoDxkRMX7OGXV2S zDKg0%-tr@c8H}tA7K+5q`SB~FsUc^r@in&;6gAk!&qr#pj*F<#>FHcAd334+mFD(Wm4509R}RA78ii22Lz9!-=@$-KN;J8& z0Ny|$zmQ(-CT}uiH{~K;FJ*&m>4;W$5;RAN+>YLI`a(2y;0-d;+piASWdEsW(cuX;}%R5F0or7Gb#d|vh zx0mz7D%XYWL#JUMk70RFt`{#8ijZE$k9M}bd3EVrT_naS8iv6#8#LH55Z4_O&*$q+ zvug^tF42%RWRt@hM#VYbd;b7_eeAX_rKVkZT>$q&X{v%^J-0fJZSzfr@x`1tEkE7JjuX19$bkclHQed;-TAJ^r8u3D<@ zZ6e+i;NHJHNW4oR)L;&v@oh@-{V-^1R$Ybev?|=c{b%V;xT69~$cjvxu`0VWKi@!o z?KiFnG8fcJX$8`4(wtr2^TCcaEUwF4GaI~aj&Du+{$E^M-QLh^Byn)P*Y|JN$BeW( zl4PXQzGDk6X5|f4huYLhXVahZWY(Fr>7}g1mY;o*&wCn1f1Vackn^EIvk6bUB{!!f zrufx`fGgrg_hhdwb=+bXyhK-&Vj}2A-87S9i9muYyq&IQ8{J`A0bRM^2uP5xyam?r z_kO1q%&iDt3+~lga;6zL+UjxyQ|_91^V=NGNlN@+yzYbafF1X4JZYHSY}(#rtxW~p zZr^+vV~}O#WO%|AQycxj^s97?zPy*tK*l7cLk ziBVf|N%!;`7jJ88324?ECsy(MOBXyCdXtd$4`B34wi8S$dl=b4Duawpohi z2>$>H7QnMepR=2!l1DU(X^m^^igqq*Gm_3}yGEIr<<8`(yBwsHi(fAo<=4epH8HK3 zQJd{v26&zn&1K-Dd$@A)SK14?{~Kk2Xfld|BSF`#=#Gmu#zj^a{NCSEzUh*^Q(VZCtiN_7@g zF$OW&zuD;JXgEAw?LX6r@{&qVcp4EXjnz|nN4HE3*h4kTdK;BxTKGQ)t|$yqEH7A$ z?{te^IV}GGZ|9Es*1EL2gs+|ewEqBf!X&MKci`k7?w-E8Z-z<@NcdS8)xtNsV6rcf2bF*04GfAF=WQ7YcO?qO_s31_ySO~}Jnft#qiPqog2d~HAj;+*ahu|s zhLO_tGA4}4eexeou^v`6vY|uXfv(z{D) zG?74BFt=r4&x?*bzL=USwbwIH+rOua6DFb3%iOX^Yg;oKEWBzsgU{7K^rbhFw_73L z3NLCqe13>Oo)pBS7Hea8R+km87c*&ZuPk@*sF6)rT2)B4-#lv6TrKu+hSm+uzB<-5 zZ`aojUWM4)2`zbQ66LCD2^?JT>Q55J(#LXHr!wz-Hd|&2CxS}6-Ol^zg#?4 zAG+dB@oQfSol2jU*wB%h%9}1XGRM&?{{R?+FwWX-d`wBN=VOpTPR(Y zTJRxFg^_hs3a|(7;+ab> zE-KD9Sr5b3n1m9->zBgd>mc1&`u*qf#)pZkXroc>rFgC5M*jE2cRPu+?h9AbwY($i zO-Fy{OazT-Fdp)SpJPjoq2CO~O={A&uMQepnLC*)ZpFu->x6l4LD4W zzt^R3J%h7*YcnF2_PAFjus%=kB(i4ODC3YNE2s43yHTQaAu}+W*6CxFuDaiLsz0tj zWwfX)HU&aGMaz5c-8y00YeA>Wo%{3nh7R=ATq3=P!{`? zYAt4v*9m40LfdipT(@~^Hnwq+Lvk%t=_Lfv(61i6VJ zWQ@LD3Z#)vhM^*7q>ioUFWR12n(cw@eW}_JOacfWvzjRLQOql3rz(a#u4Hr6hc`V9 zDd&#SgSDs2{{Yk(T-0EqH)bHrsEm*`p{AB#<`dqI{#a$FR#S;)_I$V{2ea{JBsrF~ z!iA45AL8CR8Jqn$T*qmrVB~W4d$^mlGkNDN%QWh=hc5nU#p%ld-e~14psMAfWJU7; zzq{#uN0&TmK33@IEHrL#%Kre*p8UCEM=}i{0OfN!UG!T3vq0=6l{F@d+2)R3e@)0^ z?UCE6lUrIT=XY{u16rHKSqEZL;A5gbh%6Fm`kGG``@K^6DBx8!ipO&($#^iIM| zj(B@K1 z%2VTy?8)>00Bjw=DnVCMa@T*B0+PGQb$nDLef__d7OX8K9r#+`KD5SKJhW?aMpmJG z`t!qOv9P-y3uD|!C7_Jx@lWMgC{)wj+)>uxjmhBDA8+ zviw~C00%Apc%5Du;yFi~E0$S@1hF&TW{OX=zw7hENe|g^X0ng=>G4Sy`Tc!y4y;oZ zY^=qAFc$AsV1V6(;5U9T+}kCW(^wFPBaoZ?<1w2@9Tz3nW{ky+a86QK7K4H z7YAM$0Hqjx<{dtLa0S;~_P*%CAX1^2pZLIGCdkdm)N}Z`?TRupM1Ca~8XC~In8n96 z?9!WU4{ISx8I%c0QFb!3!yp5TRfNi^uPQMN`vb~?2o&x%!FtJ4n=>Z`2iq9E}S4nH@ z9MfVLn>4UbEEn_3P{OIC=p7|_p^Ja=c@HgyX$no3Y`IwE-8JG0g79QbO%raUZ~0-Q zlv<&Nm~tq>v{w|Ff5cEmZFRdZKTI#S6IyT))&hszeq$z- z?UsZKqq;KUk+)EMzcqHDGRIk#q!jB#=Z#FMRwISAT$D=lcxY@^Z?5AL3A{q2DQ*#H z{eMgcsRD^4Ol(%YYq1pH@C&_aFwUR=SQ~dEdh#6b#`e@4`7nf>s)c>2SO7bHm#msLiKFTV?wEzq5#= zy4=Dgq%R0kys7%(vdl#Hbe4NXN+l8%yzXr@`Ys^PVN{ohvML;Q%{#R5m}? z&jj-dzc2T~Mn%gYj@vfgy!PjXTR^w(EqI0+^|-O67liNU&kG&as1&KXzv|x>!buE6 zUc6&*&wqt$`r)ByD{mF%6g44`-yDZQADvh#StJ3OT`{Je2t`kf(#FeLslzbSr*qNwk{6VOE zBd?w)_ZEHpJY#<@WbtC8*K)ue>$X4b#{sIFOB;F7ei8G-M^#Iex}HtzOGXwsTDCo* ziMN?bMyM_n^uV=NHUx^&*ST2MzLdpPQs5}{P|f4q-GdyEhh&7U_5$l&*>z1pPp%{! zatb(#DMD7K?ABsU%j<&=hBo3$ouz-o*Pe@uY6V;)5}RD!xB|QYcdNa&w(GY}xR6G4 z`L?CRHGpoaH}QV=2^>)OZ5^eAiY8Y-yN&IN&r{0@0hch2-~x%q2|o6ZZk$F(t`1u; zRL!VHWs>^K8u%MfN2vqvUF(UXk2IN$moOsJt63i_B-9pL{{ZcJVpyWfC1+N6GXsyr z$-=hDM03_EXmZ1uw4yP!Ru~JCOrH$|T1rR0i=Xwy%M`HLX_ZW|#(1kr$2TkX>9!=X z_(7-=+a2m#;D2=`mw9hqn0qq_#EJ#ESen+_T~2%Q!G=7uXES}`71>~H&xgHp-pBdv z>(F1Lm&}81Z!gE~3oqJ2K#8NA`VZ2$TQYgMw3}lPR!5C~(Q7fXKmFKT)$?TYahkv$ zQ);fI<#QUm^8AFlwCQhL8M8&Bk1%d8m5rHs>@LfDs!diVQE#g6fca%=XorhRWLlBb z9K?}B4z7p(X@!$tFP9|)x@YT`%UXUXkVD;9ruYpwfX6z|m?1NQQAH4|lv5O3&#z8G zn229y?xlT1_-8;=Q7;XjAh z8kW&(cZt8>4>HKjslBc6*TQ-K02j|0Wig1rkVdW>hQGXZ`!N3i)6)tiNab)r(>zYz z74YHnX`3>{LyX*c#gZg~0X(gje1a&<>PZxG=uBki>ApRlZ0s_$k?j^$YxN*`a`MEQ zc5ov+iJ9rcG(Y=mzP?%@<$B2&moxk;m@%C?^o~Dgi~4Hj5hIBO?>23n6K<&~M2ym3 zclE)Qa~aIu`cwNPNi!j1d@gI7idYcP>B;?wGu?%d_S}j)4$y*hXtU70FJ-$>-d;LM z-Q81+#F@;~f73mIAY_^g)BI1gICvqln+IO)IqWe9aix)nths*7pH1@yKt`TpwdHhn zl5xGcZ~IJ)cJvq(kUpZ@z=W(ugoWHU2v7c4wpO(^V8Gh5C|d-ZZFVmbJYcCwDOnNr z8?<40`qvUuS)MvE(zewKJ>lcwwLah&)Ux`Vxm?Ym!@U{4ar{?P`C*1$dQB(@&6c-CkT1MQ&@)G8ffeh)`fEzhBXZ%Cv!b&)@ml^a z5ybxho)%f9Wd$B!iy|Vko1xdu5QADn5v55Ygmc8xjIw2+fhA#?i6dbqT!QV#@W;Zx zyhZxr88UZ>+(jZ*Rx&(=cd07EbmJTU04m}{97#?S?HopCZxOPLtN1_P3LaXpjy8M2 zkBXNHM{!m2#AGNuLxqS7#qT=&u_e-4YPK>~@pneqbl81x;8Bzi%)2rRd>d`frwr|; zL#UEU3YWWfv{&FYJ5vta6ktjVI(6Q^EN!7knAL2$?(_O%#}txlFakCAWP7{5`bKc) z+DK%LsX!L3DHfIAdZWwOp=ef$HGVd04n07Ueu%7)VY0jJio3QFzg||IHit7 z@P_5R-Z;JYFXdcG3MhH9)`1~=o_7ZO?5}ZHzIwugY!;3>s}RlJTe8>X=ZoEd-(q;u zMcc>A^THHE{C1X556gU4?h4#qm8T`3@%oy8zg#upfE$JcUO88X?*4d^#bYoX+m^e3 zBDKS7NHuvAr_}As@PB;p6{B}9T7`|IuGOnoZ>Yx>Wi7oek4?<4R_GP@?ZoLgXppMJ zfHj~eJNWrI#VH%KVC9TqMTv5_2cGXb_?n+jFxCY{TVzl?45M%o{{Rmb`}D+XA!yY$ zabO^-i*|G2QT;zBhJ(J#N+F>GduVUl(*+&m8*Rl_tt}MzH4}aPacVF6o=@iA7xen! zqjh^hAxn*@+XLx~ExESZr{U#@fdj&(JDBjt&;$2IH5J!YRB6eWtHw=uB>^Q?uRBlA z1)4fvQ*sBQ$a$zWz@&?4dIXbd6VNf}aMD~rw$~`#S%*-vbmYzl}L+D zPYkkCQJmnCp;PSZ#a~XCGs)d7YSri{yY1_UgfY7*O6rqXiTkO8Z9UQJ*K7$VwRiVb zESGO*dF9Wc$AZgk6kZ#sKDgGkq>^Jn-gu}u^-B6~epu9%D;NbtTu$zO79)RMzg#fW zjF6Uww6TgeZa!aWEr!4Gh~$Pf33jki8eGx+>Kp$6=L#oF>lUKWFM+EZiQj3&AJV(x zDMV;jg_2n2QAi(w$L_frX&t=JEJ*K{GRPf(_Gi;Ydr!V?Et7uW`EP-#T{*6CCAPd~ z!|~M1r{}Q2fH{ALl$I#8-;?T6O*<%esPT2flMF^!=Jss{R#hr&SCrMrj_$+-hF@luElB;RE_ahO zzt>{5-eB3OGe~U{Eb(gwD(h_PAm2tvp{VlwRKl=m8U310C6Rfr{xR(tsgyx&=3egG zeDJ=^hEn^d#aj7d!kk=)=Z2JI=9PxcEK2gaDfpfWYf(Dr*Phre`B9igj`ccrt&E-^ zl+;h2AZN|Veu@UrRk}r0DBKfy92+YNY7t2|rd>Ak+QmO6r>-QDDc>s++GJd{2;9=` zJwMXyG@jJ?r?l~lV^u%9j6)v5eq$0vB&I-HQ5Kq@T~W!a)RSJgjSOii?n4Img(Pb% zBHwzSy*qD#9(yB^%w^g#E1AoyPnUB`IGb06e|ZVj7?vEw3zy79TT3;TnoP6BciW4E zkzCU-pu2f{!3R~3Pol-M5d zOqVYX=Ml^*ML~4FitFLCk*_+85GpUK=@s$ndGUIEaO%;>E^}?J+c(^}pI&ssNW^e+ zQMo6sE@^2gZJoGA`}*MKio}^jk4tE*KZ;pjW97^9#PW7|(+etvDdEq z;J&z)1gHg7Q2{@Qnw>c`<74696J?^gYZ#Z>T3w-E!%Ky`_;0ze3Vzn))J$k5;RfUu zuL#`Y!uCubiYUXoY8Af8Hu3Zrotc*Q0>-vJA{h>W6b|2Y!hT!f=6BOV7B`K zAQlSPScJJ_s{AODs}e8aR^GyS3wrtCWr97_F|?}IfYi}`Cf^Epn0z1${{ZoVhH6M7 zQyd%ZBMa**6)=rGy7}SBM%s?ni|NmDQlgkK@?%37uGxxlG-f}%gYk91Qsq@PT5K+5 zjcMeeiNh+bElGPC8g6J5X;RUXn6Mp+g;TY>JR3+2B| zT+1cSKr31j)vc0R+GbD6xN6pvw$hv+p9ucO7TH#c$fh#!phr6&=YY2H@f&~jE46>) z42vBYdQp+Tg|=*4Dwd*DIPnMa{{Wmcc9SDEpp0(Tj-&I!n9#G^aHN!u0nuIl)&Bs= zuKVB^(8}gkGH__eY^-~aXK}&%jaa$Tm}VZ(u{uT}NtaP%M+zjiL^c#PUSwdSv`b0u zNm%t9)e7BWKHHxzM;aO#jH=G|<=-zewbw{ChC(EdGLm?-q5Ux(@e`S8POB~BEYV2! zp+ZirW3va4%lsvO?ibKW?-P7eF49Vp)YeY)UwvDHZ%luSWcX&tZz@N-%O5ReUaOe{ zN@)K8hK;`2Y}{F?GXBy6UBuES;D`SJ(G~vy&Zi+>SV=gH$~c{#H`VE0Gr;1U?(5g0 zZp)^tA~bPJFSFYy(SGCKTsM#kbn@NaY`^UVA1|0WS*%&*TXb^>ntHy_DX|`2yGM3q zkVH%;+tGVUbzL^ICi$53<&HNbXmF2a^!VXNOQennqtu-f+8Zh>CAoK@nz>V4#Cv@Q zJRnxNSb0W~^Sm8RwEk7!>5TSL42jE0keKUbvl82xLb6NmWZoHWhuoTx?BL>TvB}0D zo8AdHQ9P;LudX4DC1w#Vwv5&2zkzEUvj9GyUVzN+q>Qd^lB%)_*6UBZ^f+9`ZR3g% zX*|YtMMQo$=X82Sryn`1`R%>gSz(nokk1^FGO09~1@+CLlG8hsCT@z@DQL!+3a_LS7oA z@(aEpMxZ|fZ6!I^^20*W9gW0`wx;86EM5ts z9}pJQAH!b<<%8_^M#|K>F}+uz-xE!q$Wt>CarT}@CyzRoZe@63js2^YB#uaP9KrIz zQIO030My-yE7D;SXy>DhR+27LF)m+zE=Ss8*yHwY)y?GD z?BWq}uQAoEG3mb*Az>dG@db6QdUF_`D%qCH%&?f{&9rf5BFlS653@%l>!;dTuHmv; zy?FpmAj-mHiZGF+NQ5zh$Y@o+iRRUl_mcTz-+F(}#>Kwy+Q!@Wm}$~MnB5{VcxB7Fn!dLcZ+@7$8HLnkNjz6{t}Lho z^4^PgD}H=fSuaq{@dH4_{{T^id-wwQ_qKp_FyFG~ zBEI%32p|Ej|}5`u_TI;&jQf9KWEDki0`74BC9>Im<@8Ozj{gKeKvOc1n299hb!7t z%M}eO=oKiTxSA@ZuXgYIsP@~;W#i8~$w=#|98x};d#S9F$}avi!x^S%^iGp^3b5(# zKpR(HzP0*dT&82RWSugyww9t0(5&FqVwiEV`Tp{}{JXgwV=^>qy4Jp;no@O|_g;I~ z^~KEzlYrK3)D%F=ApRmb2CW5g6z@fYkHpqgvfbWulEF<+ojkX!OoBG%_YWEJ_1g&! ztLe3FTPn&qSFRr^Sm4ZYnO2T`Ek!2YpV+{cFk`qVFezG%YihDAPx@CA$Qd=+mPp#^ zuDQHI=cJlkyO`@wEF+66$)b>45syVpqqEBaI01PQuG(QkZ*lyBpX-589fWsDDPHN% zLJuKa6Bdb7wlk+Plc!b`bo=!DT`(OF6r4yosr5gY#5UWhaAM8x6*{6X^4}I}nmHuV zYRq_-#Nx7l`#)Su0AV*jysGlI!RyPPPb?UtD;r06b=C1(Pl`V;L)WG~nk>YTX5(uk zMQupc+mWYzs5bTeacjvmnq_FkVpgcA8n3X^F~}xZVy8?V&+SaA_nyjN;Rdpgb#X}! zoP(aPA&kQ2R!EjP7{VG|N)#Ut+g z=y-gv&vf7w*IgMAZY-8ucRp1gTuGV#01=jaoR+Z3h@c4p`$+w#L)x<%l{<9w_?4i_ z%{dU(B&=Cxcaw`wx#~j^=yv@2YUR5lupr8$O!_nSvP$b#z0IO%`JdcUHgxo(%%keO(38r9*VAkSl&+(SHJ^vbCBZrQZ}h_baxyNG>7xQ`ZL&#zms(cr70JdCZMRHmS@Y>!WT%Q(k3HG4 zYvhZ_=@f!Ti02^8#-1qiF~!7sP;%?XY)lPyJ5=-jn032GSkFX#>+!2~2A)`TKw3uC zn8|C|Brhj)vD^|dDdXCkV3w?*(Z1!uc%DtQI*t5YF&K0fC;)}=7N+$4@at<`X>&tD z6K+^VNoZe=(;3}DRd@dYj2j@%6I;A2kH6q;{{UQGOx;&gQP)c5_lJv;SCPcA!r4*X z>4=7E+`~pi(iVR5ra|8AUtbo@8%XiyowZh7CD6+=DwU8ffsNwm(bJaX;TJQOhb*v1 z60Czg9%+ikw7J?XJxL|zHs%iaX}7vIK;k(THv&UQ)gz~P^rbfxyAF_MB#IrbEo8(# z^{_OFDE0H(%MnEk(j2@_#)BkdXq27J!%$7R(>aRrq3J_pj_DAkEfUDY{hL2_^i#dV z^1}C1J4hCA z_80p}Wp0(*3z_KqSGr1F6EP}4(SgPE}rE9jw zmIa093hr3ANY|dlz72;BQaJiyl6zn9YYXMNE@lY(+w7UMyf4zg-MZ4{{U-B3w|ZH z>w<&;3R(d3^TCUfsV)Bi7-bt*oll-5%1Jvk5p1#WqgdOXyWrL}-ECvB-1GJF#F+_= zxm@$0A)3@PSML$EeSa;nm+f4-u4Xi(Y@`O8O&6uVpRI8Wk!EC~Q$ryU;S)*3@0mYq zeQ5^zA3R6wyk{__^=oz2aHsqA#Gchyijq_YWq;w+P4JqmvB3OOFje6l7l`cK`F(K` zOPoz3WMz!UndUB4sPs62@-6LaB8FMAg=R-pJtgy{e(ipkhBV1V3K-f$8>>doTBQwy zf#>>q;`GWyGVM@xQDnQ+Axls2-TtghTPc^bh+6l+V~S2zstSl7#rH43c`|R9m5;b- zBB*h(F~(-Btx8?=<&7M-X2g%}BfltPnPGI^OZ;NlM;7>eys(KOTJXseNLuIIs|Deb z+H?N^#+(Uun4%=|E~=}m0H;;{4+7Wv;2gYyCvehxG!FU-tUxAc%~e`Y!A`zgnSmA! zxIApAIM^+s*Tj?dMq(H%BIY7fJgDL}+c1+~6QWx+@xM(0Sw>#tV!OcmRLkI=d6cWg$&NeqH*_SlyCL1%B3+)YYmNMBa%`H1_ z&YOOCc`~r9@y5kwe7dZ%0_57T@NkS6dewdHCdXOB_Kg$=ca)w^qo^P&8(Wmwfx%CX=gqY?=; z)S!h}nY5$t8_he;nAKq`v^~^km{|Vhnr51E9W6<|oQT8>&oq6ZO<2qp1=Gx47{<5h zcYyi-04x}ZXvk6;hSOE?esvgBM`pIJ*J<}`DM5d|^XZ6YM68HMcDh_Yjl81sJ#i$m zMHp$s{1h73jpJ+M`#yMm9N4()JG`=5w-2Gg?Gh>_+UnE5oO~_-kqrj_0LuxtcN=aA zyasL*^7B8IGLZI$U1er=7c_5dS$Gl`k)7@Lw5FPMJ6*ontiqJNzW(EiyVI>cm}Sez z@aI6_u^eh3=NXQMDSkr}48}t^u2=~g9Gu`~({m(pBA)I_cf9ls)#r!IMVeBt!K&|L z@qLD3qgprH)}BWh4${a&?H#d_fJC!LCSNS=mtK0YNh~quGCTLX`$%nu3{uGyS-~KR zc=ED7Y88F#vCKa1o7a~8aMe_+3hU`1b7vQcl37#f&cBBjEykOOyzXxme$W2^mIGM2 zml-%?Ul6CJDyqzU9Dj7;xonu0N-GjLdzEhT!TZnMbNz7>WwPcN+W4au$ra@yyr!I+ z#@;Ap{EcadRyPPtjO6o6>}v#)Y-5T!If2f&LmYuzCwdfEw;Fgq4i&1Zfk1M9`_aGS z9n8WYx3af1V%6ch{{Ty`>4buAEkM*;9psJntdmH+&Yv!ri%FxGL~#;Ws8->x7dmt2 z^%z*!EtvtfCdAUe{XTwpVu$!>-l0SBkiR*T+}hymq?bC)2eaJ zQK?G%f%3+h=8{WK9?T3To82Dd^AxGyd}_XG;I{6AOtz;2nA29eo@C`b(Vbah-Hqg-O^5VBFd)wzhBb=EZQMjd*vZy zTXyp6Po^)+v~sV2!(v4|ax`*r`?^|aH$189jaZzF%}XN-lc-lu_4#jz-OZ-uSpr=i z%)7|Ib9_Xxx@!ikL>J_%a|c?L54k#ZudX!Zc=I-m<9k6$lSWg$e@>WJtcFIRCZYPUVbx5nb zFL=#5d)FJ(*B7blu{HYEyzp#0^EB9f2TWQ8Pv?PM=sX2>AvvGo!GkX<#w9eGRf#p* z;wD+_)@mOQ%=5%xc7|hwi+HY4Pr~At;S0OI+sz|1lwx>ER<#11_!INSl#=E00A*djix6h}HvE)>f_%I$C$dD5>DgpY-cqCg z03Bk>tWv!B#ZdW)A#<0@w4Mi&exq0W9cIeqJ2$lB9i5o=S>($^(+OmztZa?%tdtW` z(wxpR-HrYOt)7+CyXEp49j_C*vQZEvfBhZ}$hcP-Y`Hl&Q!LZoAqaMPe!>4Yrs_-JHEn-k1_dC7tb|npu|5KJF2*Bf<%} zsfB$Nm93<6O3T9CBVrQmJ^VM=KDeZj=$9q zBDx@{xtY<#%U_5bUucgpWe`sUkciw0y?N=gljMH5nPq}El8W(ZXI@AjZfg$#katl_w<+fC#@l{W-ANN1&72f2ar zHub>ghH(G0vV3- zuX!OZhiZr0@*Cl^F6|*fa=jX@-VmVon^vcN`Cs(2ik+dLn*A!oG&P3!BCTabuSsAO#PA>Aa+m}o^(Y;&x_mcO;^#`&!ykuHM~=tkx2WEjX(D{vN@Tp=JE}h&wd$LW_m`070TRZ- zS(?0S-C64|E4SPMgDNSGNYxfOb#JQQUoZCh^hnJa*n2|AtKHb%Tl!&j)zV5yrKZm5 zGh6P&a?_uY8{;E#`$kVtG}0s{Jlqg`e(p+*J*)jNb8+StXv-C}quNw*;4%Xn{&-3j zZR(+U54~Ss<%novr#9lFN)fsWX&VIx*AnG*7eS|)viCOevpGJ^7x`oC{P)C~@`D(3 zwarqJqyGT)4Zj+G_CGv3rLjp#5025M-+?O@p8I^T$Wrd=l2vS2)mMvE{?DiU(+e46 z8kbdNJ_0vNgR8d4JIWuHHBv!cK2oElPx0-``rt)8M$U#4!yxssF@dYL3j@%-?@brMqK8l;rnKa&2n!|6*tR?&21S(rUn?2nWA=HiM3Hp1%zXU$ z;gH8Xi328GY_Z)z<040OuEc#Sy>Xbz6vCJXa4}o zk^ca`xOn632|c1TSyudzvPC;RP)^1Z72Evz`A7y++M^5aU^ngp@`!iih&EY}A%HqMNUw@*~4<;e1;jfsBfQQ_!8juEDx|y5db;D|HPib?w8y;ikj$!+Sij zff(c}IsWtV+v|p$y%e>Uy0zf9+)sm-*8xlKRiU?f3e&Hy72|{!S~=tfqm>%J$dxZ1chgLAtFg9jVyRhZwE0Uj zS&4n3ctDaiT&3&WO3_Y5bT;ndt-dN@GV>86k_{+ijUJRjM z0Dc>*;Kt-eoIFj!0UmsK(P<+E%QbCh5*G~Y6ov{Zg98*QQEoAC3dD6{XxTm7v2RQ= z<|J)ci9;>c2B4z9I%+cak4-P81ah-F5C)vUGcg+tWqYwqx@ehq*~pJ}qX0e*c#Vl< ztzE5=Wvgw%-BvM!4x%$P5+!K$B)FdnNRqTgMha)m?rl3g%xx+b)6DPZg^w(Wa0s<+wE?dQ z@^<>-Fw`bG^KH+?zTG)sC|Ym6n7+b(_S<1itbxs-gg`tVxV4v`K-Fe{H}dnK#F4ag z8V=;ESHldBg+H&;2fhqlP?F82buAZZ+uu4TE}Zc^uQ4esVOf=GBlmU~p}H6c$6$)juZ0mDf#ce>46-C-n%=}*qNJ}Jeqyc+s_3IS!f+(CjQWg z^`do7iL}m}ZGy7pa#x3RkY#fZoev9&CTlDn6p`aK_c|Gq>9NJn6q$M8ju$r|vP`}H z@)9I5X_|6A@7B1@PnyiPvt`yr5I$2emUygE+MH1Ls{WMa>x`FcX7Uzxd;xPEiftkxu_Akr5znIhX`}kp) z&>Cd5*FS`=`XPqeZx>HYOB~GS;?q}oLm+Mro`>`6h$YB1S5#gD@cYZtyiMaH-AS?i zDU8XLPF_8;F{18XS9w}XAMFKC>(i-=DIyZqU9O7{zJM}iyV&-x)1D;~Wz}SavfdG4 z290g3-s(v|Dt&NYy;DnH;aHpe@9FixHw#%Pq`ES(JvrhyZsK#(ZeNQ_-QYH2wkV%3 z9KI=6j>>ewxU?{bb!sb!sxGeLkj76GE?g~86J)3P?TJI>O|7%ah1nyzJ-El7 z{Rb>Z2g8>uBo7h$MCE#Ou=VGFW{OQkVt@v=Hal49c{UM4@nbPS(Lb}8wAE8dUHG+3 zb?;tDW2USFr!loqMKtIeXA7dxE9rNFnnTlk7ONQ}2&Yy@J>CBR5B2(C(l-mptx*d` zJh^rKaicbfQ53BDqgqh+@YtLJNcrlhL@ zHlI!)p)n9MBsc;qhzMjW(>DKFrM zv~#jZWS>uX3{hqI^}x2PGE=%CRvk7!3P(Vky>Z?Zantagr|X6U%IflSkRXrr!x8~| zEnXUs%)CG{{u46W0EsVT=6=O_WrnqW=PriRyiFi%vSZcSH<>Yd}ky`=#8tB_@wwHWyoWwj#G0=ynRYxewwc@z z6)HRj>xR2h<*Sm+Md}vbHSn~bEGINu0;wHZ--q#HV%+{!GdBT6p57WLmR`^UYTki}ms zm(@G7viNEc@;%(q@bFq;-50yS7m7Dj7p9qc0MaUAKgZ3aD}BUlZbZ_%fzs1 zCklEGFFQ^hlQ(kc3W9fO2Z_ITr^~J*O4j(=;LX%?Yt+>%PhZmlOuAEBDxJ2W!!JQ7AW6tD5dKRg{>pqAqqQFKRFlGkos z4NuD#tKO8YqzZ@l4zK?1n42usMv*K<7d6SmCak-vQoLwsPo^f0N45nkM04Io;M&|) zT-T0x{h~O^hBL=i?$|Gc)1lwbY!-QH%Be&FLR15CS@&PcxM+0UN&|8G?Qw2hJh3*c z?J;s4uC|PPg09wnSg!(GTE9|x;w@Pr;T#93ZI1}AG4sK(VrC-i$XBYrIX{K4&c;;_ z%S*W;yq@&`0B^1pxrT@ zmS{+6kPRf%RTs5yXnOL&cybcCjX}TN2-xt8`Tqc1M$ke-w+)gynkebEJPNPzI<}!- zkJFznc-JoS4!5(XKQGG#W1y>1kBYwl2|@P0%MzW~sT+p2<=@x;02px98{7!pwGT?r zc>e&gga<6{`fOtWn_ra&FZ^TLrW3-FC+^!ZqQl0oqp9wPDP^Z$T1H@XnilT^tE;0) z_xNj1mM$Tc7*Us!mOqcLEw;kLBczK8h?g-fqd8UJDpndq_l5rHgenEvvT zJWUgPKP*xuXpb5eGd~$L>GvP{V=no)^8U*h*Ox6ki89ELajK+t>34pfc(tYlb46i@ z6fDigQ9HHpFP{5sF>Y0%WsY7cr*}zhce9d5rKMjXjU3Y>?KEkagw|M}!D)V!KA0<* z4J2x7YeRO5_;PItNdF_8i9buG?cUu(n|F z+W!EyJdJYKgr;lW0bZjLW(4vsUnu(|P+HQ(KGa7yf*)r!c%A=Db}00F`O_VXCpJ z-P~QX`_2!wG1K++!)0egr2&4CI$S=>?4|I zPV>9p5#{vay~?Kz>9#i-aaA~v61K*S$+zWRxDvccG)E~D%8eUGCZWvphIBO4N*W!! zSgjHbK_%dD{?Xxen0u@Fe6X2VBFuJ{b|4-|yD=I@%iZqNH2(nhv1)ue)bhbAk$9dz zeeHR?mFs^TX(zEuEHa7{{{ZyiCd|%!D%wyhh%E0sa{Jl5d+64oSSOZ#VaCNs)*5TrkWNEVk$(QMAN&d&H3r&A>ao{Yk>2t)phM zfRj%zm-WO_%{9@wHS#rzk$Lzc@NL)Wgw0w|GXWPRc4PMTFI}mHdD;IjQ!>O&T$WlJ@QO@1vTdo%> zxiOfFmThP5Bojx$WI$^EUo3x$W*U6PSF;(Z1F<=MdVb9S8$M=8hj}MTawB{v?1?lm zNGD<)MR<5ui12gk`r_%6gT?PE(UO0^oiK$AWtO#Hv^8o9Z?!z@jJmW!lPr+NWGr1J zRJt8UPVUJSEZ)QRGuD(d=REfM}#*knDxYH&M$>R zt)c2gYx%9;-EkW&;zZ|YG3|dkh4`uEiCR<|x4gG%6%`BOrT(6H)5}Gc&83$^G`Y3P zMku^c9ep!2zi6^YjI5(Eoyukzt-36lX0kL>LkrLpZVz`NT}`kvgD|k^lGFt?2jg)W z(g*PIQ_l???rxO(wF=D3zV;qC53gS>vBLq8qk6qb1^)m#<1cf=0&4PGfgp0S?s9); z8LF+Te8Kduhf!pjmAL!3^toC*B1tv}J7f_Fd*X!ql7;9r? zEgFjH4tu(>Rhz$}|y3clgvDH~u^l@W}{iViPJ6sFATGhADF5VJbv!GMiy6 z!BRK11dm?vzs={)wZ$co$cbvPIjw@dPsA}ad=6u23ObT4wD6zjhOZzgAW{PV0R2Y{ zr&92wwV|j-!Qt;Bzuo@;zAam>6gL~Zse^3+U4oW7f$>wq&EgT(1a@TuT#7@lum zpG*O-6qTaJvMZN|oJ0Q1?;<*TsPiLX&(jLI zc6j1wkPm1Z=6NkzK^Bv}Da-oeSIjcC0bye5sJr2>P(1eeV8s-x5>Xmgl?^GVDW>`| zi&uJq_l7&vd1GLvN%ihdz2#CQ?*9Cn^w?n^vy)9JCZa2}j@Nu~-tt5_^~Fe0@mo%8 z?ZTY=eDU0(ho#aah=f%5LtJ|AgzmzLRg2Ya93c09#C)+MnUYF#Z-<3AXg@p|NYvY8 z0`fk!>-{mrrYRXnxlprg{MY=k{cz~TX~tm#dyu7G598E}@*J^SZCMuWJi?*fd^{tU zGlx*ck1@mgbHc7>mPH+ug>;0saaDyo%5p#RivmVoegvtsQ{b-0*B9`{g4h=8WRNTo z#jw#wZY0tbged74NdV4&8=VfRPW=R!c%EKhFJa3oE zQL`TMSpDp>uH&Wx<}&b!VWa6pZ4*d-!H$yOCf-}}+pl@UG>hG(Zuo6W#@syXgpnCT zB&EZcyUen-UPP)$o&0h=DNomICZ80=v~^l5UeV0gYO~Z=Vy!EUU3 z{Bh0mt=%vLIk$*OaGD$TtXw67e5tiOx5j268D1@!nXR@@0O$Gq@WiSIS4JW~38i^s zj4l0LkQ;x$>5pp8N{~nC2Px_Dbo@n<|oNW z@urS1y*o( zK`6T6ski?CZWk^fNHmvKeV>IU4E(S7fV*)|=dzTJI;PCd%0AL_^YX&XvNaWf3m1(?!$;@m%p5I2Nn4qEEpF#a52suh1k?c*=hJ1-uvhep~EQ7!8wrkF=V6}iL{fS23EfBt{z;heWV%Uu3g!6 zAS_zcX$GX4YZ&*N^&I+Tq>n$LF{4cq1YtN7)s^C5sHJ(GGQ9St8XnN?U05bzZDITA zGYmc4@>hSU-k6dIrJex36fC7}b?*i0{{VWh2r}c9 z$}4c{1$kl8OxGN@ty)bv#f#lABIQz^c%LVjk}0z=&`8n7r@DBee6C_Yv{+_~{{Z04 zST?0_yi`^3&;b6>ti^crb(^m`VPi#ObKD+28uL6{?eyne@F!&hflb_=tWLw%*A$LY zi@9DO6-@yTU+IoNTWvr_?R5qgKJsbLf+!bN*!n7;Tr`ouGKpvpCVVnd?nWet$nx9$ zI$|kecqV5c39~w}s}SE~mWNkZF4Qd~U#`Msg(~lMzq9Hwe~vVYK`Z5Bm&zLraG7Z> zL$1>)1Bp58r<&j5JNoa5s=H=oNRk^ib&PmeSHkuEFmnt>rzCY|rGYky-Rr@ISVh7! zLdzZXzsncRP{yTcvjlI4)0aGIC1atjRPfq76#oF_gER`xv8t?5y?O5Lffskv2cPIG zjddmj;`lv3biGh z!bdDhqKl|*xbvXvzl3jxP(9iA%eC5pr~%)Ff36?Q3MKUMKbPh7z*mq&0HOu0;!jhB zr*^F%Y6E@a&(y!m3?`DLNz_Wx)8X54)jy}MHZ~fL6=xq&%a`@ThTR&Kub%i4wq4UJ zcALmi+NQJ@vUiS#ryAK68Mw8hLbAJM&`P&|+(7B6A_~Q)%W5B(iPa>`#>y%IlE8i% zd^`UDdtgZuvyCGivT;IV@fQhBCu&lgeDF$Tp~_|`>#r418j8Bf2fJjSm*=;e#Vjc% zOE3vUmf7Qv;#64~x{h0dDWIPPFc<(WvbU|dGo|^lN``k zu!Lo}067zxujzN!7Ugq!jIB1yCQ)*(QZeI^^)j;R87uCGx!><@t(nb9nwZHf6SKyu z4V%^Ule_-_Hl4=n<&M%>m{ThDIWcMz6IYa*$ME&Sff+7kz9?ixz1C6@GgtS$Mu$FI zS8OEB9E%7NNaPFErhomo)XPbz?2Da>Ajl`4CSDgv`_Bb;->Ae4nVk&j3aZT-W@F5# z?lyh+tI~q*UZO~QS_eMWm8&*pBtadUOWqi{*4edwgblFgv*rv{kbu#DiToAdZf}?q|vB4~{jb9d=@y!&m`Qk;)MeM+4Cel#aFHFU3 z;_|!QL*WN{^Q=(Dvma-QuIN)?EBJLDa$ZRd2l{zpw-=L}EUi=uKyC-8uaN14uApeP z4mfUB43=jfW6{M&%*pa30?mHpIkDF9uq8pZ%5QT zTOs&5bKC2K9N7-goo!{;$wQTrGU!Q=Hl}JhXf)65F?#LfsXjw5DNr=lb$rQRQ50ELT*LN(xc5RT&T!w2U3QECFen>LexTcD{aLELces!mw3(XH`LTobs0NZBKCnN0wk)}EG>t9SR zS1k)c8@F|r$}@?jUozW$czWS8U8SALJY8~dW?VdlzW!)&8q;d}<4GZdDU{)F*^^0~ z3JS59Nmt}M*-dbBP)`_^-t)qoFaBZ(3)0`GrEsb3@)*c#nWZ|gvEjcj58q4$StVg& z2I{1ziLmMzzU>;x%p^y{{eF03r4q}=X{;e5wt!Up_BpV}lZ z8N&}~$P>~m*0RBuMEf(H_tQzg4ASJ{sKJdh-JPq$trkvJ&C4D9hkNYki~j(qHo<8D z%ud3yys|X1NZ{@quk5;8d=#Z{B#$kYfH0#pQ3wh$lXB`Cn}6??C@zyLPBQiHSa{KY z2b+AkU>6)wfH_lcd?Vq*I9aJr+;r{Gq@JM57Mr^NoeU4OqkYl6*2dk4gY{7!!t z-ov4-G{_~krFysJwki}M5+Oe_{$EUT+r(OwR$f(6_s2{=do;I0?$33pC0k;MB=?fZ z;D~)bZyU)RjH)7MNh`Tq9If$!hi@Z^a_qt=*_KV$QC2`G!s>8P^7`N{1up?@J6-9v zC@9Ua96WI!x(>y$ERU*XF?S^1 zX+l}ZeCkqbrXiQB<{wG z$!$NT7C6AmhTv2zf!$9Wcd6Y*^~J^}oUb<|aD?9AI-R+GzI4o>PY#vszWiP0-0@(( zC2sFZ88((b3!TBCAkd6il+Q&IWta%K-Hu*p$PqM_l$Auk`5tZBKfSpod7Yw;7D%I! z=DJ!Wkk$1~JJ_jR@l5Lb9&0n;nh3kb_|}DDlPxrTJ$L1f^sM0-ft5B}g+|EU<;Leu zUp`ngb1S_ItcJRD^ZfA4bj1eYqa<7RZ6E#B!)CIskfBKyXuw^GKJ`kS+vkRcX=?Be z?ZLKCr*+cja;-f%<0n67vq_i_;h*8lvPf;vr>`x!Vp!&x24zbljZH%omfT`0o#xcR zRyv%1>=KAeEz!Q7^4(8ArUI<03eH+>>6wKUtKeBdYutT5o$}_yhftN&RE|X!+WCm6 zd=4qyZ_C4lWwlr+W~1{}_jj_Ied=@Ti%2(s4Wp&acR!^$VqI3=>PBMsm4ATx?TF&J zsDsBP@-p1lfqQT1jX4ro6kWZxHOu~5A9v?YSW!r(n2YSo_kuXlw4*Zfv;5hn9PvgJTW!gpXAB)qMt|az1$Z*9O4$df*utfVEUlo-5pKo8Xm~wnTnr|fV z-64=f>=k6MEx$eSIcfE>QnE(Twp_+iS3%v%jNc7B`ryhET)M7ULzr2qsNcJI?IxcW z<}em6>)yx}HVswh>H6a>nGout$yb+w;faSWb$z`2>Anol6tSf(KFpWEr1)#5bfX;V z)%@v;S#soGseCJ{8PB_Q@L#D>#kb3B2YrJZtMP63u^ZKWpc`KA<%d;cX={=>TJ1l^ zo>AkztpF^JRq0QMf}7KSiwkg)A`SYXK~uRm@AKtft}T<=9tj1LdpgoaKMb0Y%M|zX z^TLd#N#@SUvSqWfduM2+IXvg3!rV8eA z2^udNO$L7SuiSg0ifv3RKy2)4(X%Nk-EZ$Ke_CO?Iz3m*I>)1k(OUd5bRl1a%} zTfxCiBr&{OeeQmEo@SdWRwX*QlbuK)@PlWxx@rFa7_Qr5&fV<3%FFgQbm9z~W~a^P zV}@?(T+D@G(#li6(Bc)JDSbrVeZj2ZIsaT^1|jbxtzDNtLnZ(v)?x~nYrRTZQ4Df+DBGN zg-zOgsA*-}vgErvEtS|`q`v@qaZm4AJ#gXfidebu+A-YCm^Tj#Hl|)dxzn)JqtdiB z9QyQN$rEXDM+=e}e}ZH0EBmVccrvsS8tzWY%J*~Sh=feHTCYb|zwae+c1?(TipiHP z!U}M+ZfYNF750cT4H#{B*145~m%U|rYA00H{{U7iElkEcVu~<93sXvs?evyYw)l`j zszULmTuZB%LF&+O!}8zeX@mY7mXWg2?$U;uC~~LF=7UtoTkQFH*BYI*oSQ!?ai&Z= zjF?^cWjFgqWOCfomo4#TUn7zTq0%tfXzore(NC5G2$5)O;iW3PhvCMGwKCDLFV;t= z6|~ykRo=K3#loa%khasH8b62Wi!7^ERHCV>nQ2G6_kW88w^XnKcu3gq^Ek9KD6d2L z*Bm>Wzftn(i4dL-yj@K}GR18wUv9gqi{|BzGH!HW!0KUBkGhEmsXAJ!Pu#+J7Lb-hP-7GXBmI zrJbw>tFqJnF_@ECi%deqU*VzSP&T5;(S8TR0>C!rt8r68Xm-KWnyQIl2YV{?GL8QL z_h1+@=4FKmMhk0zpmAQw5{s$F{{T3g&!jIU(vCLh2yecRROP3L;>+D8WHS6=L~N+l zx%>^tbHXjK%P1C>FF=fb7~5+6u>s9Ec~gWmX~KDN3%{4^hS60cRaNzBo@c#f@K)%rwX#=e9L#aD++fM34l5hV2G{Kf!)`WC2MzN65fxBDM ztNCH!mP+N?kvscFv@+JNj)=kJ1nm)zZM>@bWwTuRwar`DeuD+I4WQVh zzl45R(PB}EBxia6K>B~`Cazqh6lZ4>7F z3mUhD8*8b2Q$1eWNTFCX9sWI-y zcS`7Y)%b9XVFZz=EgVseuCwg*Ibh8c1?;1QN4qlmVwcliKlMkwIC!y~_S~MNN|Fm+ z&h{9_rp%J@YRB&D)Z%o~Oqk3ZyG2&e_Gnf~cgv#E2)n6?i>c!0(xyV^V_$`lY9pro z0N?3?KyFQIDfHf>5(L$aFN8{R_FdqSY=0KreQ`27Ome~j?3MtQnMGu79~`IQ<<7Wl zyAvuTVnmfqkL>)1ogOZq#fdVR-?H~om7~iGH^=?`cfzN%0U`HlfEOwESrcS9sLIB( zCzFh=pTLYB!Vz0)5d&(j7h#18T5TW~04Pu$L<}Ir(qP?r&;oqjmd|wP{m|Jbrv0`QyQ`h+%4I;3~Ed>dzoCTIgvtv~|7|U(< z_rtS??F$)Xm2x`ghfv8QDtqls6YhmM_>D0O#)#Q=C6N)NR55KsOhiWFG_)fPMHHnQ zhx*}ib7Xs6<+3SEc}~vG=Swd9X_!c~_wvLsP1#Xo(pF&c&7AhE&7Ndsd$iQ&OOGzN zF=+cgA#0CwO7Kx+)6^J}C~{f3(kJh;Idn!T43GA4i8W=ndg&eZ=hIU=FKT6=uXzkv zuVl{60p2vs&8GGt6*dn3y>{O2&+IK<({@StiK$R0%HDnD-s5RBFkxIy{WsgmF2SOE2}Hr^f+djo3-<5s>#{wC}>9& zDL!rq8a+ODK~pzBX%rO4_}qPgCPZc}l02S%Sl=NYXYKPjF3*qt)+r}iN2_ktAOLWJ zg4Li%!k|!$O@SAJ)#tS_P$?$inueyI1sooc*L7>{XXK)TfTA`5DNXip$56MR7;77ts5k9F&@aPoDRlwr4NDJ;sz+Rvq?5nHj%aQrcg`VLr4dm6$BODiQG!rb|7ihZ27c*f1}_&)ytQ-v0{G2ozML9qV-Y$WlnowSOo z)YzYk@ZvNI8u44CQ`WYEe4%W0WyR81sepNQUc(-Ovx3oQ#ogi9it@K;Zn zzxm=)%43DD21(66Lg+(E-RsmgC4Bcr)EM3kHVg?1)i|op!2A#J1v;jR*vdi#jE4kbm@di5!n*ui!>}rS6a4St6aI%PafNC&jcuoxC1ZVqu88gtOYzm zqkgo)LmXmtiH5YWibREzb8U4afU?&yoR+RxLe|pO0SG4 zVt>$I{qQ1ez46T(CZSf7yytD3{$~hcWoTKWCKcX@saqHN3VGvDLs2H{zdGQ`SBBb! zJzwG#{JLUKXhyFO1ruf8#GfDc%Mz?%j9@m4IpI)N->)xBE^N_d%vJ6$-7Ss6XvbGm zoq1E&5vFGHssof%FR5|hLciwz_G9_)h~tVIUSuB7Zd(>qZvGi<`BbCdn zI*J%`rLD>R?eXGO0#pGe+Z(|4497-!Ua*Mg=${#5#7+M$-*m9c=% zs3eKZcd~6>3ZC!lhtYS-O&bT2bn(v!t^7|{wC#tJGG$`r<53XdMek+typ&3E{9cr% zBhF^vWEqH>Q4Iajju@N$PZFSVsxp6E~a zTo8@mt4kd?FK!xB>s&kvbR><6mAi>gi_80_BvT?dQZDZ7YpLK%ZvAmQ87#bpe7puo z(WG`rmv;!2_i?39o)a?#(a3=Tk!*cLFW{?><<7Vnm}FSpc5&q0N6XU|_38dw{rmlV zsneb*8RpiVzvlux%*iZm9VJB^Kjo)0Ze2fhTKSQ-Gh8u;ECQGzcyEhJ+xD*KpIlyZ zFsf;`k#ofE)V9But}{#}Z8U1NwJON9h1IY0DfM$3dDnT%JOelAB#uh73quFOz}qE5#Tb94}r*fZ`W%2 z;!L(md3z%vmF}c`qUE18Jk;+SzkqubC;_kk09C#qi$9;tX5h^!iY(55H5aty=7}{B zOC!jQJQKTc-6u_GNLV>+Uwnuncq^Bb7;L?@}+3XeebO<$b&HA?&NI=1OPdlMV0ofnb!**RijH`nn;xX&ll{`!>&zxz2^19 zNZujDtd1)a^mIydAH{}g2YYRXM!EGQ4exxh!0W5b{x9l3JQOQD?3m~xQ{@Wl>CE$t??P{OyIWqezS(JeCQU$X}slOlNK3uR3ro+GdZOr0;Ho~-~ z+xlU2#>zT!ZxulE<%PLQ+S>!U+m$ejP}t9!Q%)2BD54WmmwiJaP;NW(5T-2gEQgMcb1wdWyc{qlIp!9K8zh z@rB{A4~nh-0Gud$zCyWmV^UH^U0P_EjsR>SCZ*B{&1JAC(zDahVJRgX>KJmTgfX|pV)w6S_59T(ks4E5N`RtH zUk27y4j)Y)GB`CFK4zfO2LY_!P$QFxTtXo_mqMN_HXNy}oXYtf6>%W7ev&bP6XBgY<~?(;J%8`1{+ zJ$-PgSrfS|Hd|vGwcNk+^u^G}Bir4EnjI_LFL>SOds%;ZO~0D9ZUjx^b_JN~Bz#t* z{ii$tvg}? zzj{2VdSXn(jeIC=i9me8bJmHsr(An9Sq{-yttLrlc+q9OKIC%yycC(GkTq7uji|~w zwx*YNV8aBB!6xgqI8{p9S~NeP^4|~LI!MwGmvKsAjd;8e?G*)g!^JUj&VFVu!vBD?I&mDtyy z#$EE{vdFS#A&|cEK|qP{? z?6B^t2N!)iwv-Gh%YV}m$2Oj%ndq8s#>>F&`F(vTDF$KW0K8+pm-cSGF(65!YL=8p z0xFu*p5vd_0-REBBZ0d}cJaR5=lXa0VCG=mcx06=xquW~tf;SExP0)LnnI_PD8tPo%$4W&fUYp>%Nv6xLREC%$>VTID=qIe#*_xghW z0GBUZA!{}?4(%Gq3v}DxDQa1DJhwR+1XAAPPI%bQ)pyZu6Wd8sV?ODXx zx}?RspJ@$4TJpk2Iz!r1mRU0ysybm9)f* z)G(zE^$DC zd#enxFnwROM^eLSlW(3R2{JsA5YD-I>Sa6FYNQ{%{{T3fD)FSUL~V{^sFaJu;ed0; z$M?6ucDao>6}Z5!ORGj3VJkS6t{k*sO2=aHE!%p3eAefQ%p7Vhbqy-9svABJ^CHAi zX+TS|ym7^9D7`ftul|_#gQf(qiZB(ntW>Hk-+R`au&6Tf36C2Bj`n$(Q79Ap=Y`cV zT!K1=A9<{4RV6%D9$OEd`*w7%71?~&Ve&bJf+S>+guf;vapCV2K`xp2n+ccAWz4d` zY*kBzB9-_uZ*RT!dhap&#-kZVha%F3)IlA$N?*a3FPQh0kRG>k{N#f<5$x$M70G5L zzGEipJ)V8z&Bv;SU0%HFz72aid9v_Ebtj$Dk$_Y_4iGmOPpU-89uS zla}T!3jHu;X?>yTEU`$O5sgNR{L3O~V~=tf=8w zO3iUb%o=j)E7uX7e4#mq<~+c3`N z=6xG2i}}+7D>h#%rI}P%eVHcHf^4R?pS2_EN*6K!@93~Y$kw$c8Aw=&Yh9Hd@hoOL zQfksQ+PjVU3iAoUwXxRzL;E-dPkY2t-L)sxBs!(jMsyVspQm{{biMCPhwMWPe^{c)F6bySMt-gm7mU+2CInR0=dDBpCl z{r><>`Cize9P*sk5U*} zPt4a4ovx8kNgB5H`~yvhDa`GR#A=cjbE%YdTjb1L$vA7r7ti82Bu1&3kZR0pZPJbx zJiRclpX~hHxdq!-D*?{JRjFsRN0K?Ip+Q4ke7N-A5azw8#bRn@^7A{ulwMVWfA+&S zX7)yZF_sqT=W^pABr;}ruPHpT{{Rm0R)=EUtNm zYp%bF+VuT!)Rk3@eg6Oj6}Vr=6pzUHVWW+*&cN^j8AA)Z!wc$nT6Oc@p1Wo;!T_@- zY2w;TVLxzm_4C8~Q1O%z$4lBaG)l-mHRaG#5WS_98de2X_avu*ZzoN5^~bX*iz^$L z(@mKbu4ei5rVNThnF+ePr9jhF{4GK2%MaYiDvlc?biUt$#-2n^I@cZYlxv7+mx*J$ zt^I5D<pIk6Qu9O7i76 zI~U(m@Ex?Ii=7539T9K7i~j)J?f3m~(nd|-YJ8Uw$$8-bB7#s+_^I>$`rxJdFG`1I zj!9h)CJCsVf0h)@m?Y{NlWbtix3Bx)yUrh?sVU^)X(19Q& zs$^1pZGjwe>k?`;nQAGu4LF2@0Hl_cA*^MgV9U8qS6g51xNO7{riNl|JlfLJmRTxb znh)~Ueh2=>I4Z1$qt4OJv_C9M9JdUixj3TLL#gjoTYr5@15cw<5yzHgDI}0okuQ15@|-dWblz<#uA$%gtb+-H+lUq>ee%=x=NL> z@3SXXQ-MUJaH&9y+*&{zXw>m@ziqa}c36uaIE&CaQ1z{BUAGvG*nkJSPBE8FA>&QB zhW?!J>!wk&ai(es#54}sX78YL?{(~PBtl<%Ps52Em|-)kBCL&|%^)FeGfN{PS?^_x zetY6LWXwgyGo@BdR@XI=<2ts=A!z~2vfC#RRQ>OL52mIDPd(WIAc@~CCSplM z>9?>_@q;T5k|}mvA2| zRkBx$$7xL_W};7Nki=z$0~*;xjzb{7 zsfTsyd16<3m=zYYO{;L{@p|JgJd;JFsmaxkb{s5?X7|Q+uHIN@j5{o+RRD4uO#R>g z0OKwZpm6bN%q7d_hPIsLqG-}5;oYLzp67keBa<&Qk_gaJBLrlWX5#N7uXZB*@fyqy zlufHBF1N>TyIbNqymx!L)A*@~*+5q+3&e;;#eDhAA3wCGb%-E_P(s@%2x_5~ZoK{Y z_w>QbYQ>i?5sHXWvl)EEd_y~wzS*@$?7~g7C`S9@bk9mtHIjGsca#3dwEHdCv70M9 z_iH@`G;DF$IvcXX+z0bWm2~TsnF72!gt#RwX_@^Ji{qjK`}AYDP{8Cw@TL$ zy5+!il9e1IG9%|SiZ+K#k~Fs*TO3@-k%<^Ar3USPy>sL(n0fyIw9dLx#qLb5E^=9| zwE4;W@Ulr_Nhn?oJKEv#v8N$lEM_1^8k&>@84m!hyuN3yD?Eq?fm*y}&nCO^{_2C5 z!_>>B;&Qfa%KreBF&uQG)t#udtCclCzkhE$E>}4Z5=OE>NNCPpSkwrnT*48Wide`! z@EvJE&l7exY)P5TXS+H*e79>)CR~4s{3H6W*8CT z$zMrQcUGHJ<>T53W%=-oN0w=o^3gVNpD~oqRxHZP$CrvfXJGPsFr7u!*sAS`VS#HD z5$3O6DA``|s`O{$)bj*l2SVbD;smQ zkKRv>FtAE#ASIfR9SnxVMRG!F9Yy$E9n(>4`1N z%NoL2S+iTSh~%>LLDR2`s2H}SsU)i>0Z%(CrKkP*Ve@M)S~W|qN!VP(Q+=h2OZxiL z5#@VUIC6P}y|RrPy!k__sM@(~!bPQ+?xWISLDzlpr80@LVdu;!B#Bp6ZW7exI&~Z3 zBRCN{%66-r6+PyeR^v81-d4a`1RL z`q$})N#NDX&Bq{l(8(2i9p54Gc~=jZ$t+q?1)ZabQ0m3LrPqD)zSxQ1D@YfC#8(uZbvW!XRRS{sAG8q!s<9Sp8{=RhlbpqmaV3+DA-Hs=@N5XuUL6+P&}N{{U+I z@Fmeh4c2WX<4b1Lj#WIj#4*R15h}jnt0^l(LF2i4{{YS;i&Pn2nk_0f{mxvZv~3Z@ zj75W&b&43DYlC+zM(1mOCj7CbF4=jBm)a70TcV|S4dTMea}x89R~|s7=!qFSMRr$_@r+gWNJDFvf=R2%GSOr&|_R( zb;t0tY4G@Y+HnMd6El|z)vH?Plt^LdVY0bMUQD#Ja+&JOBwJKme|bq_rXOz2m zJ@l17m)98`T)50ya}W&fcQkb1)kCK*5aM}*Q2ATW8Jx6?>6DnrGg-EkpEa!^j$ZaN z9B<|qpHsIiMH*(ZMm(r7m?e#pe8sv&GY_nNoXU{{7tgNP%=Uy(qfH{178cFMnS7*o z2c_nqYV2jSAO2V~44XTvUzy7nMTRrgvd+@DpXp9RmIi7(yn{+aI)c}2M;c91JQ2o! zzaZ?_mJ^}V(_uP?;|&-ZQJ!0$*A~e+Mv2)dz;LPLlB8o!$f5T#ZhXern={$j{Zx(g z8!MwVu{;WNWdwI?Cp}#c`;ETn!CE7tCA?P0Qk?1e`s2MZM-8T^s*dgcq2>HNa8gSO zv7TJIzFxAG@LB~s$s~UwFzp<1>Z)2cs*1->AM5nT3_1l&F-YHa)7}cuc;c_hy=j9i zlz4M_X|&*qR0Z|?U3Amo<<6Lo+Axse>a!x z*k0)}J*S$K_C7?rGW$MLT$xvjU)v(KhMdBsxs$Ceu}1Kd(gJ`-ap>&wsA67391whb8r5E<6*Xr|F=YVD;rmpnS=jdK@~ z8m8jW;FG1De)TbZ(7B?1P9Jh2yQ=XASKQ&r$$5SYe^Ar7q>+At?WD9z>0;QeqkVs7i&2$C~2MMKACsHrnD zrD|x$%W8}+VkumtS|c^W^?BJIN#fQbnsi`Eq_`XLTU`KvsWIP&j zMo+Vk7UGy<%DbBW5ru}*3)+0{O*8R-#u+R!3y4_<#pJ*9hHF+gLCE{X{1SP|{O}Ac zB>t0dtqZHx5sEA@`K4_4cC62xb9Ym!Ku&0-*c>c`u@1f#OS1OtrxobgMm1sHof=1E00c?S%aF$Xc$Z_)7;@@r0*BY*( zWT2KdFK}fQu<9n-T>SAnE0Tq-RfsPp^rxl^e_Z4k`tmet0hNfmte!b4Y* zK()|_P`La50J~ghMuIHfe3*ExVFIwLR?1&pxp`ucz>z>2>xEuP+1J0!Pb*eQq>`ef zj1d#u_gNWE?!Uu*E9*}@O(f>U0J79~sLIxm+x>B=mN|J8@XT(NRqdtS61@Fs^~GbF z(j>Isy4b#Z`r@&&$0fiC1Mv<>?wfrECd%g$JpNdfJoMy&?i_Kx+F*YEANInC@-s@Z z?G)2zot+<7z>bn?FiQTTmNY-Z^JyGJ7~dr(Yft@g>Psj7pv12pYqg6vigwRtHP-Kf zB(JBQ6y@^=Jq%UUfz2mKcH>JAc~2?|`eHf6I(dP9i|Jn`>EjV`)Eotd`xPxR9vKaw zE2A#-@a${!!ZcI+Gst*W^pZ(pWbqNx$Nlsa-<1Kc_Q{#%m*_=(9kv7G{np(puJB!!2vfZ%yqyuohq<&F0Z2Y_vDZs;0G;MfWlP z0PY{A5G+2{q4ge1;DKQ-EpdF)N2uU^tp_}JW}=n0iST^A+i&Y!Ntu~g62|nM`F*YcP#j>fP59bU&U1xs55C zt0<&({2-QnKPuuji%un1T|&Lci5{!n1|8&`DtUT!B1V;z0#5a>4KWN5t9N3Ss-czX z{9YgaSX{KQW;CiJ)9($ikGppp#*s_T-M`g|GWkp7fN4t&O zollSy+Ye3wtm0~bb17i8Q(7-_brPFb^uRJkT{5uSuDOlwmByxCRCJYOkHd7izqTHx zkycskMY8->2;g>RzzPrplBQc%0tLC+) zBYfUZ+2bYsmpIQIjwY+wK3$^Kj-~zd9$zX;Vx-%ymYS&4NV(ao-0A-SngJYKjwQ-X zlg;*ib~j-_~iDOxE+2TxQV+Znnrg5RBfXz)%7ZL z^5^Yk+iDC&kx~b!r|hJmW{oDdEeLw+}&q+0th6vPUVNX!|*vM>3(i$Q5;)+A~oR{{Xj_ zi*x%lj|9?%eB74anN;6a9Xg8Jw?j`%dp1upSic^C^QOSs1>kLA}g0+@AF6^=e4VJ<4xJx9~^!)BK-nVi%Rm`X>jK!NYAoBXL? zt{w@7YE{h15V|ybHT%Wnk^-2W)gXA%YR_W0~E<@F-0D75u3`aLfuJn`B`PG zu=1Kr{{UKSDn=n}>DSD)xrsOu>z!++%!KW~f}bP43gr7^3%r%oU4!Irw0H;LFWv0nR z4rS4ov$NTDRT);TXPS6PI+_vcuRpuDh@6-GPnXN~W@s^wBcF#iPRs2CSuX|*?1C}v z(GC5cdu#GLWsB-Vt(6&=rprl~ns^pTJ=s>x#g^(nE?8{1%Vn8$8DVWxdz0~7_%_>b z7d$ILY^&oXN5XnyF;sdKlbKDhRF0OoTCyZd{T zaYwW|vPsDNtBlk$xf2D^N`E)o?6J+$vw`}Yz%y>&kSt^TZtOmnSYitU@4&0 zk;vUv--M@A`Qan$AgoLH2d~!#LR1231ub1qi*4&ozdSp#Fl9DPrY%-<7u6eok=XOa z#2Dyx<6w&%OCsq0(#!U8cU|V&-f=9FnrN+Lci{#W`0n5C{{YT2e#BM`ymHR5WnMiA zVug=&B4z6r?EU9=>9 zdg@cp;laL1BQ6VRmJ2I{eYoQOhic$}CPzX{dNw<=ttsbBQ%WO2bApcxBMxXQ)A?Wn zu~R_*02k+nKm!X;8=Fu1_HU=x6Glel@zZNgm@j8Igq*m4Tt}Djiuj-V{{W9n37#Yp zFpN7!?y~rMzVd^+tw#QMsL0Athajw-^34@*tXgJiA@KaGg9^hZwEJ~#-v&@6gAAA>oPqywzRJ-OCTa*>I6{cd!-%S@mnW(PPO6k!k=rC zQaJ5rky889nyl3CBj5Y36v*Dxk)e|8$w!frI$Q3>tf|Cy9K7);?8cE~7dC@PL&*xzNaP>OefBZJA0n{R*-vRK>l^^E5+}BH zM5a#m2JWZN3c*8dI%e{nquV{4(3fE+WBttU-pCXio8v<*EN&jSXyXo6q{z90 zdjj4&nAV43PI&Isi*$uj;{H@_iTv@p(6|+jLsvx=*!d0qxDh0c5b%cCmu^*0i=XR; zk)^1Nvj!`qE9*~}t~h|5c0!Ha?yNe3K>Fb`8e>?*#Y|_0F(i>mB3{P4$Ceu`l3v=B zcRNc8+i`pMMEYV((vR8Wg_JmviZjN%MV0C#G7pb$mOZ|ymT6Z|MGDK7F}0yWNb_CY zxu+j5D$@Yxq-ByA*g_*_g>w91+Gu;LWoxJgCwp}Nj6;m{N zzZ|ZD^o$jBKQ4F?E^+0&*=R(}N1_Q1mcH749Y6JA9Ij9_d3QkpmJpMykxZNhJ2bS( z2EP?CCR#kik<)aQhkD6ns9sc%N2$+ku|#v0h9%`nD_4uYdg`}2au}{(TRE9gT&`a# z5?j#w#N#8E1sb0*jJ|t4BS^V-Y{WTPl1MW%NTPzAMzKdxXs2EAnv*q}%0wh4iz`VM zdc)uahY63K*m$OJ(j-V4Xu_L#2Q5l-^zy=H^7)+djE+x1rC4J*J6P%koo0>Vl3i+P z7%5Rv$7rNU9Pu`4IO15_BvIOC7hMFoULdG=d>*@ENOX=`6r>YoWr|qjjUynx81Ub> zpDZN7GaaTAEMd!Kh4(dsO@mq9#TnjipAPNQO|qpRj$IX3cZkG4e&PPhZes-}T{f6A z#VusfWr;@taTb*i%K(*F8j-v|wD)qg?3akw&&ol!B|Py2dA!tlyHeP)-o>kyDG{|L zy`|V? zt(9X}%w@mCGWm@eqs?4%5o;P#oliNvlTumYKeOg?@;k#ZdYJEMmtJ8aip3RnlXc#$q`F?;FQxYO%_OGfeVr!aDWGX3to4%gG*CDcZo2 z@k#btZ5&;}1Z#dAI%`RwPXUDRwWKl>LEW04fO+oN)c~<)YgE^YGts{T!hHpV!=3iD=|zX9@2%`QcO+szNmF-GZ;fjH+B= zkHzaXzROGhVB3Y6^r+03qX!y?A-yo!(Iq6gF;I8Bb5I>FbKgCT?YBHf3jWa^g?j z=^q@U{P6z(EPsYBbK0lMy%rduc33zs(~?hj9J^DQrX_+^8F5S2%+8_o)R930_&NFF z+nz)umn;BFj@G z%Pkl)y(^~Q*9mK>Wfi#itvy(MKb{>-0xd1l`wWu)f7tcJE?tCzCsd6j(TV>68^`hY zvHAX8cV@DzcXqr=-*X$*MmvtYXAP!86&MN`f?OpwBxT6!PnY$?i4Pgfh92C^AkF0? zZ+YFFQfG`2rC%#)=5j45o+XO>w34GNvOs;=E3G6`OV8UjroJt?qgM$w-?u@(*=lf`C!kN zAG4AkMbdEc#?8m}fam>_8M$ie#?hYo&3FVJ5MbeDq~*(t6rQUE{|CSd5j1nGDau0Se9K)IS5%E z7%RMNIc|QPa`8F6vWyxCjD?ao{A|)lZR65^2fq2@M)AtVKVpOmt21yTeg*1wJnNY(2<1?Ph2_WqFCX>Z#yT|t; zLPnt5#t5Z+JK(OqW(hk-gEf?yBczlPU7ZT?>9~#<^y^=)+r^ND$;>>et2pju**EU= z#0lIl*1v}UIm}Fq*Cp#SNCdv|NYc^~`TqbA^4@%|VY6|?G_jBnaKOKIURFoLz7Xab zcm`RNM>29jy_$(%1d@HNKW8SlZ^f6FE1Jt@C1_@zHIiG`+KaYZ*=0(xkN3M*ed)dg z5$XrYP>O+iLu__2~I` z?M%3+)i*I%l^OY(5$CtdrZV!xVwWn)9z4=au8d!SBvbL_&~@RjrEsETMQG6_jzy6X z(gYl83d~;4a?O{U=5d&hBbAB>S=`tK&E7~KQKb7=q>iJ-xAS&}j@s3+d$`72?IekP zFWZ(Fysr|f>O)=^4#W=X^0&hvuPjBD&CiySJj{{LmWwkQM>YLZT2C8pIsTZQnu)kPhX}RF4F=pJ1~-a55uM*)sjwUyM$q*%jIV5tc;= zqNDAzv>dp4;wOhHlf@qtkOy3|pT73KoKr~twEb~APcjiB-4YG`nk|-+Z^r(-IMS5b zH0?*r#)hTa;^i`P^}a?(^${>6nkSq=~!Yv7uGe@@@X_ zmj3`u3qV74v__4Kdb3Bi-9BdkF+iXNP>R)3D}NO~ho&_E=kT5-*~d+=HGn`oU^BW~ z^v2RvJdPGQT2)Y>M5@;_{y$jxSLcY?OlCUL~8y!v3R(dr7c zg7virPnCE4v1-kik%$D+Xm0D`^7Q)P7?dcboJ}EgcK5n&IzL#g1CEOVr0Pz5jGdP8h~y`RqlvSw0jylk4eSu}uIKG9=%jmg9G z=y~9U&IM)!Tb#-`V@@uVuP@gSG>w;%IbB;aX(Ll>4%OIl<{dulImWc8F%J)+XGA` zggwaPShSPtR)%`x0Q#?{5SAnFC<8R>dTm@XKOi_T< zve6qiRW03g#WiA$iqL9~MujX7@zdwmrUY(e4;fKwj_~ELH7R-bM1lc6xYf(EL?ouI zSs#r_@Ya%Dxx=i8X;7C-F!=HDgay9+eAnB?VGM>f#>x||5%4(IIZ#x)z$ znL};=0MpYCRn#*YI4t@uFPDL0gG~bKNL#6H?5rX*BX;rAZnR~zJ+Y>(w*e{-yKQ~kiNDj& z62=f|)ug+`x0SlT(-Ose0antq%UD)UYsam|`yHsgF&1VSnQnOU@@3vBT}tUl+ZfK8 zA6$3qnwo6N2;++^5W6dQ<92>)P5E>ESfM&-O7f z#?bp7gk+{;EA2^pXA3l-$sBa{h@tE2U6-=*N7=J&N&8q>FkgsGQlAIk?4|6>b@sTzNS{L)g4AM`KLx%BLLV8mb3vq!}HTQlpgb+{@wG1 zGRqEFS1k;YvOUtd{h``4C%cX@-Ai!tw`?bSoXo$pN0k#;vgYB9PTJO_kq&eVFbAC} zz7tMJ;)Vv8Nn$uq#D)-*LqKEVsrBW9omggEhOMr`iqw;e-ttcOFPESSczN{O8K`pE zK-p=)G@4!rbvjpn&yl7r%jQe0hB%7J zySmsp8@KiPW47F|l_QjE04p+)1<@Hh-fslD^9;QJ>N#Pff>|TXu4F8bD!Mk7`#tdY zk@M(3mNep6b1x)@`A}6_CYt;n$p0?eLubcP|cWGn%|jo0c-ta=4~i&Qed$<-_ZUv&75U zeWdFwQf8s=FR!~y=1G=@JiSzrLCUoi*+y%(6u}&#CTRO6X`j6K^5Ev;9}h5om~PMQ zERJWjzv;J@W0G#ojvUMC%q~pK5T5=RGuGWCQrrgIK&iRgIoWw3*^Yu-sLExe%l5ic zO2o{jYG_te>(G99jyH^UPG6DBK{OX4U1&h?)7Q_-7MVi4EMttMdQ72{z~B15^1f8U zLaZb2s%K=4+BDqT9Xr?ee67c^=His*EloV%u|9If-qWb@m~!NFmTrEu#z!jfXEM?& z%>_bSd(tZB`O8tJg%QOun%##O| z{1F(Yc$RqHG$DV^hHp=IjNEfXl01x=c%hepEj)LnzZ!q4mG#4A{{Xv@O}TB2Fb%8$?(SCq0N=2GrZ0Hzr*z2Tp=WJ$E4@FPgA#1*Ae>$SG2MS)eYL2_}3?vP}Jeec6WO;jV~ckKp=9i z>HaI8&1dsPne_9Wr8}b?-7AvS;7T5#(zwfIG8rI|ymuryaT+9PBX^Qm4I|Uv=TFK^ zq$`+boS1B`Sd<`rd9=rcqOFysF9wx-mz-w$^G)K z9!TOU9W2Zo!+S%@qP!DHKCM%8UU;OTG|OFS2_Xc2C*Q6bu&F_GZNo_=8+bp<^ursk zhODA9m|E%WD5~auIO+CB(LqtlAOl9*QAi64}G3EQp{FB3tVkQlqv%`uKUo}aV_%b3E9k))XS{S#--Ek4Tisn(w%xmos=RFPFJhDa2 zJGPU)sV8KN!Xs&ay|JvKX(Y@MrIm@I6UgPbU1KkKf3I9>`xGWOB(7aEUHlK#vm0mt z-F=%|O1t&OvnqoOlSL#_4pOUe$hHEjB5zGkdru%SbZ9TrWl0>BB%k8v{IHi7veI?- zvEOhk+N~+@puwMk8v3LqE^v+rx}SfR6HqC=sc2F0iW<}7IFV`+_}OD1n$^yO$3#aqRy{4lZ#&|TvFFdS6xcTgneMU<}if>`rb z$Cg$}1Ek}>>sPnz`|psatuTF)E|Ez{vhm9}i%r#E!D5Oi z6`Fu~;!}Tln0U1xP8wz#DAC9y;G?dc+FE=x^tW|mFS-vUsvS_Ox7oc`>waB&V5oi{ z3x?jn-*@hE^~Kt1+tS`|Y4OoE@*Q#9WQ?_>2xZfVL~XND^YO>ZlT%yFTZj|dLk7;L?M{XZu%KKAhnLZfunlGYdxO6al`bnFI+IuS^ zbfOtf(a}fE&m2;S^BK&lQtmC`%S78#%bUrXK`iDWYycysRV8XJV>Nv@uYxXShl>U_ zjWe0eF%)wwYSIwSrOv?&d1Z`h=62s~ODlGEO()Zr*^W)}@ajeuMN4a^?C&w9VyNGL zOl4ydEK$QECum10wX+HocT#1W<|8uAyYuCT2{vvV)?+uA%;uw$jY)YLQkicJ%5`$^ z{5zWbG$L(MlSS@=%X?+Zb3Dz7!apv!IbP7r%O*xu(`A)|Nf>__jzKiC6en@E-nh#} z7L*wzP>UZ0?2F*c!*|xbcjt+w?99r++Kx<zKFAG@U}aIh&ga-P&y zh?$9FGe&p;KGQUH#0YhYbAU`Z>IiuSd^PUyJF+T;%^_}8(_rJGi3W$D$*!d zdmzsCd(q2Cv)1{txuuFJ<>{6Kd|f=!B$RBlOz_<)fu5E$i!koS)xzbw$ksbT<-B2H zjZGaNVnh9KkSUV9Tq@okT(;W3(+c}ZBM_(vT}?_D{4RTUULmF*35nmuqyi*M!kyC_AC^uK@Y<#ze(5ak4kEW=Zcq zWzJtbVolbv$DE`i{{Y?dCzaSU=Cce8yiw&=jI(0E>UlEg6F`bY^lS`O95=$Ya z!*6q=P9NC?I@vEh?Q`*4&u^&3PkR*ttisiM$Nq4!s+pg>42vS)CY+nN9_v#GE|QA1 zSZ=Ww_l8S>0UWxFFO z9GXmGmpde>m&@h9c4+)Ywe;udyJh=NFWJ+Z-}?-ON)-eJ;$|O-Fc#Us`p=tg>dFcC!0Y(q#ovH8pI# z&yXCkWKqKzw4BAxt0Y{~F@NtV%ZH)HoN8fQ$hPv_D_<0OWOM%j#O>vWvB3b*BOK^H zxKKN}*im=WsBS+aT{zFz(zpslL6|Er5n8KWepqEO%85|Hme*Q0{{XjzV^sfF}ud#NNaZGarX=a1_9I0uw za`L5W?hSg6%X!~1oq45Vlpj9Nid(>^<{#q%b+suXTu9%9wZe#> zEv~}He0rN)yv%>!>xNR%mejj;G^2RjPO(?6^ zmLo8Rks0bq1R%z8x)+Gz@@IuYPF`GD{J5S^~Q=uHJC=v8yi@`2-Cm(&+{enq2HDSR8^lQi5*pF z%c|T3t)Z}WAIlkeGrBW-EE30D!k8hMq^EityfQ~0oK>yZe9m1+ldw(I~JhjZrdE@u$A@>Fc&pmoqM3Penv>t&1Zga2&JOpFQpCi4JxP zfXqGFhRfOk31N|(_mTQ&ov^YZ$)%AQph?tL5`~ zIU79B0}REx zshc^8KWVI0KFe-Vw>0$1w`fZ1napWS!mkvK-gr*(*?*r(ayXeDGQ7+L4J1$AR^P5H z)Tx#J5mEmDwzbpwewfyEzI949h!$(l+8Tc^*8?k=6F_H%_|B>QcO*|FGK|Z-whxDfSftx} zez=xwuB?)@>?T>8iVwJ*d&=$q0E`!hD>`PC+!b9(32{y(0+wodejaBL#ib!wOUIdc z29@#)c$Q8s9)AuJ8B?_LIXfO$a~7n@5nl4l+VY7ZkX9)N-KfOKvq`U+Xo^T(S2AFc zsUsAZ#~e}9dS$Z}+!A~yLph=^jhDCz@9z9wy!z9Y6EnJnlm>D;lNsjJuct5998D@3 zmJ6$Q8vDVizjsnJ_p<`=FC@CG8h}Kx+IhvKH z7cREqDYHzuspL~8VpT>+T1Jc%Fx^_DUgUrMJX}?|l^BT`L~BxMwNI`orKy@}G~mm} z9FpcU5B7E>P@P`1`rt`EaeFr}CDn{&t(}dHMR7FM{OivP9;;qH7vpId`R*~ChB$1u zHuTF|B(e%6x0f=@rXQch%dRsyS%f;ycwrK$md);aKJP4diuh0h!~AV^6-m zF7i6}zwwI0BD|NDk5_=n3z9?0;-bbj`ugG1v<;4>hGU0Ob))^n?no#u^Ti^Pf%unt zeLC{~xB=s>z#UUw0q}j7&jD<5HsVsO++(A3jWg~10V)kZ-~xZ+YCrmha5Ah9V~OJA9?%UcvzCO*b1A0r>59z zUM8@LT-0CwCj#qXci}YIU9RCj&jlJIP7-wEQsa`=zIeAtS9WE1t~GBvwLGzVDrp_* z#F}hA@1_e4JFBv?+Z~qP&)z2tolo__>};oty+ZJB?C`4l>y(Z6^u%HXD3C{H`&Qq! zKY5$ulbPEKB1sWd29FN%lOZ-WyKn)!it27LV$;D^Qd-tL?p<5z*Y}P-xDpwZqKoW+ zJ*ZF4y2-bT3z*D8nVFxvtgs};7>9;6E{2H5jlZ*n5M7sxb2Km)hNtgpgK{2tjwof4 zc2$#iZBw<}I@Wv3Jq|38ks_P4!mV!T>eTN0u3y&+B1VwSZKT4?lC_PqYIkwp<%n!R zWFf#O@claDFe9VL%(MjDM?OB4rS`$XYs&{RB%K`TWz2NHx{dsp zxKr^QE6K-NDOClV#ZDv2-!HBzyOU_AkhS z9sDEZ=hqKPP*6r!Vma+xGa9Wt@XlSWV?~XN2fIte$}5T1CRLV6PNid3l9CIPOt%7k zZpCCt8g#SvnK`Hxk&|=r{{T!%N|Pj>@TiiE-_@J?V3ig~)uJB;+=e7T^cP*^c!!q! zv3uNBA{js%-SLk;FVhj`Gcst0%_p`oI*g^g+TC7speRu}e~O>ed`z+BN-k%L^=Fugx<33X9_FbY44KKRC92S>&aw$O z1;RfK?aT8Xc#hH*>Ki1XF}e7oG|^0C41}ZQXg#7Zl1Nr1kavI%G=HZrOlF~$86P0I z)0kG1O(j(T2$6D{Mj18s?`B`F#|xLqkYkL;CS8^|iGoZLFjZ}Dj*D(*y+%PdTav)%32FIjsDPq(2eaYXIPsL1SmgwUt6txuhuAH@Q zta3b*-+#{;2{PF9#wZcovFqnk^1oS7|l&2 zkjk}Cvn#IEkjB>Uw3Ixz#FlCry;l9?-cO71`roFJ^mxWE`{^cCm@d!|}n|Wwn<#mptN{ zDWKo)8e&Y8Sy=NhXJJ^g8Cd)13=)Fdx@kisIePb1V>qv%#4{{XLb+KWgZ6CZXC%3u zH}{i_tdVL~@2{p8vvS#U7)@6)$W`ayjx(#PrX_jg->=sKM@u0qA&%73nOR#)iaP40 z3FS@v@XCUbj|=>E{6@c)*x{HaW*F&Us|?Opl=3_3#B%mid19&a>4Tcg_{X!%>%`Z5 zTvtme)9Fg>>x|r*^e>o(LmY`DT%;T;wTPqoj(r{i#S&OrDHXSPukze+j+n99J=%)F zO zzx&q>;>rrwRTL|ypD=we&=i&!{B1Hv7GWh{g4NX{Q^l(TW`6G$KV!-=c63y`Kb!vm zv;*VJX@EVU_y1M+5#Pif@u@1ejDCyfhm(vC0!qyr z&q+9*mGwBw@WUgipm?;sqPwpD0L*=G*<9tiC~G!Imxd|i9trabJ@ZFS7`K9(U@SRI zwpmMRGi9QWEVCY$N0*F5^xsFz`Njenmdh#|ya-xWt+J^p>*5&VCPr~_w{sv~Tt8en z%l2MsR8wq$q>2ecAGAob8=6xWzD=O08irYeqWSoKG4Tu*XxoQ~9%GC2>4q>cxO_F( z{V^ELWeKFQhmE+FEEOY9}&)09TTAkAB@ zl!UuBoa@S;>cLnR9KHSHG;jnnmhrvp(iD%Ckx8pVzs#!;s-dl46nr$VmL45f%p=;d zM+w+78;T+~d1>2$EBsgzW^4+kmIq>YT7E9?d)pn!TEk;fBV>Z_3oX@CAK`onVTvnQ z(p5AKRlc@`y3xN(I7saw9d@l!wBcW!F(b-CvpHZk5>xc9Ei%Mw;XMEk;A3@ay*_v{ zv_wrJ63=k>whPY%nAFg4@df-tr=}#9-)C6b(IY1r9}o4y@VRIBX?5Sz63Re?B&DOd zu5S?vh&N|t!!fopqComhQu0vm1deWCe}7T|+Gb{k`5py6xGe-ZHROIHadj|F(7 zG^#J({{S-FX_q#E);*8$Q}p!0#3L^(gbIcPo#}6){&-UIJ&{_rsv&AMJX~Lv1dFXG zzj6(#l=(I!jmQw)VhGNoOB-5sW@g}7B==S)>s^kSKJ0H=FdZ&lmnPisg0_d+tct{- zJiPkhiLVf~$Z>deTHj&rjX?L2%YzVqHPi^I);Bv-!6z>-=Y;mG%81sCk;zUbyp(3M z#PtTWt{I^~(`ncX(@l+dNF#KApDY=gUOl9Cb83Qlttrc>Z_^HV*D!c8=?rf)W__J( zhP9&&#J-(6z;cGyu|@6Rv7g|JZ9m?bcI$;q>rFnYIjnHhtOal2Dj3Fs!(GJV8l8oj z%S|+rGKWUjWQ=l(TMbv0Td4BHCo=*N`)bEhksUkVnHD9+qXAkhxQW(zG{TtP^&nEE zek19(mKQIZ${`50$22I~>otUAsea^^YR(-}_C(Gz6*TA3{LC@DMIhYF<_Nf_A>Dj#ui%=zp>F0>4n3q1W-nm2zEanL55w&lwq}z>2 zk2)_rPku{G+_B3kwib1l#~t+fdHpe|m&~qfD-@b=&L37qrFC-CI@XqTw?Z+J<`)ZhY z{!8^moGQUrG0_sQBMJ^1ejlD1)jFIJ$_HN+mGY76yt`A=sepVqG%c?#~VW zE%|d8nV6M{XP_&yTAEE@{wh=T#j!meCho<&HS=_-)%Dx*#O6c;tEY`SNaam9PF-_RHCAL1)fjCgPGqK{==;PLR?)uu zL)lqxWz5Muf%LM<`Jl=1B$6z@v#eDb+U@&3`!`sj?Hs>n_SSDM)3j5~m1fK3^?&+E zAdX!L6S)+Yek>$NsX(C;$haX9@mW>r`C%>s;L1&RZ5 zl_XZ?(qvZOg;(ClN6YfTW`M~Y2Z$VtbFektvO1R*>*tH&D9q}Cb zOq_XSUNp>S^As~gJW+**mHS$KFejTSmlh89LpaT1$>D7&;Dec3a{mC5&h$4?S77B9 zzg@|vE?A(9SCvg;<>n}P;r*I5k*T-4R3r{QKmP!y47ufOyC=KK6f!OQ?vD(nH-F`U zn9o2YgpjM2hFfE?yjhIlijd1+jyltb@8{e{#VED&1{b3eZrr8q=g?`AHfww4?C+@eFZ@*22Jx29op%5H#DK7DUs!hSdTFmelc; z8#fQf?{>pwki(W$sG_JXx~tMw8}T(){qWMr%1R51b9WV>U*1}M-QKm^7o=i2ABsiz zLGwJSz*d!ITpF&%N--?!vF1nyn|Y0}rWqPsl#T`K@1hO2cvs#;Cm+6K(Zy3|4a}~gTm{wBp$tsZREjUQqx*rdKdEz()6%|^>wKaII zyNbAL+&x!tMN2PLrEo-HMb5Sb@Q$?k{qLp-PlVdn^DK6|Y+ECN7~O)CUL(R9vG{S_ zPF#yFcMjel$u`6^O!D&rU6|*jp z6B{WT2ELRC&9$MhixHL?7?{nnR;{(ya^a_*DZ;spz&uPCdhbyo>Trsy3!+?#Oue%hBV|lWSf; zbbRT^?@UC3EVpdQmo&~q*@f)R*U8Qr%Vf*RT&8xL6D1d@=66i4Z!OwAlQV#sR?f!` zgso-fHI^LSYxaOX_xsUvWs3n)6nCofMfUuEXB^MuIgALz$`UZ6N4y%6vE!GiNhI?G z{cvL8Qd%(*s(sIn>Ypw7{PD#bUU}`0*pEb5{7Fu3n9|a=DaowO9~Jg^ z>0SO+`s3RqLo4dFB$r~z5=4z2m)S*8zTRB%0MLRwrC&E0)HBZ-&6v5e*_@`4jRIOG zgGVtzQ*Ao-CZsmT7FB5FO5c#>K<{1%ra5`zsU9JTvk@`xT(EHH`ZvFYb~|x;a{R2! zhLMV=5Jj*?C-eSaEJ#%sP9tvjT*vSmG@eh(7s(s53)X{!PC%ETrx!XO>|y;3Z3c0rnCy<(a>P%F|meO(Uo^{1GwB+E%wfa$U)G*d(2<@UVrQS&Tw z1t^Hks*y%M(^G1`{=ZJTY-KK#b)I5mcmDu0Pyyb5ryHEalr(rcki`LZS=s8EkUT3iCc+Z z&{^RaSs0gkQLHxa_&NP?y77OT!*}rW<=5$k7K(0UE3p0>cl_)0!lEmNV|zO_s~lym zzUmquEw{s+O0MWbcn_fdDt?0!X-;yoTS8JT{{W2}F>ZnS-UPhf(;qXk6Nv9%t z{{YS;_H3jXWwT|D6-Ma3A^zA@C`w4iB$ce-9b2B<#{E5UuMTfF9D<=j%`CZhT}w}K zG-eburF`(kGY@wXxLX5h?PF0YUQZP^!BN_oe5l-OyJjgums+sIec-0@RAu)E0%IKg zp_abMC6_SWo9z$O!K1CKPxEKqyW{@=!={@k*KY=MG|wKV-8abPKg!KQX~puvM+7S> zkr@(5nk!qV-s)Yw+@C$S*a31}O}dg5Vpnd516hT&sw%@Hv;Hn)>4j{#+wNG+xIBmA z#9rMbF1o+|Ua}21LhKJ{Jbw0F{{ZciUN7IAYTU9w8)K+hUy9E0X}xP+d*a?3h`pM{ z{MCQw7v=K@Eq3lo0`;Iw|#L5KrC4WK?)eBoOe-6 zdQf4q(!~_Il$T0qYQ)`tbkZjm!h65hY3F${ z@Z#2!P=F*=3r`ncyx%>sy`cac9w%Y(8lQFr!@67r4Pc;S^82@a-$lo?xT?hW#-aGx z&~Wi}QRVmX7X?mbSH^f&hO5hv-xcB(Zr(!fw)On5(!y;DwyzbfP*ZE6d&c_^Zp$ zH*;1T$r3~rSSIzhQvKEX^}fOgr8(jQoph2Mw|54D+eNrP3~O68HvYy8b6kVOu4J_B z`Bw;*Y9?p|A`@ad7`Tz{8}l0uSksnnSK84vU4olMe?EUaFKXpsSi4s*B!1VRB)haS zvQZ~o&@x(Njw(!kUtB7pDXT(b_e}bz-~8Wy!-1DGOCC{!<>MhpWgaNjr^be))`OlS ziX7~jN7DgaBT2-q{&a0kPp7UMFP&_-%%rwP*?8wjWkgC|H8o-5^WP0FRWGcJyiFt6 z7jFRP`HW~t(U}AM9EHA1>+{ecsH$meKCB}+jn?pkspX2Zqd-{9$)cXN*_BP3}-Q=K2$(tP8%EEXx|)CfvZE$ zVTk63F44&Y21A)I4AP1Q@7^`mhbZ+2OGAG%O}}f+Wz}Qac%D12UxH|J9pdI6#mb-j zu{^UWYRu*!v0C~fM$$G&E3KhlEIgMLRg4V6#S$e3^_ixp0ADSuUU-%~!^1pKLUm`$ z+ntsYRa^GB)qA+KSogPc_;6!|CQi$bF)KknZ@ax>U?rE?aB4#8rnZX2ui~+zsDE<1zx3vMTPX~ML!Buo)D`1aUGDwh+u_Ax6x0=w${|Zf-P_lH zJ+Y|;9yWSCY`5{+l>GRy5}iHC*|}{@R$SD0Go!Gs=BacUEA6gAB2m0$fLXEZWx|Xy0c% zZR$F7t{{b$IE+eFBc8^n2DOjKC3t>#R4TSxW~wUIBosc()U~e1q=gaGbh^)Cj z9kRLHtg*OJ;)*e*JFrbFzw^hl$Crb+ApjgP*uDUr+K)dzm~A#etW~6l9vazN#@`2D z&jKliyeYg@l2}?A(*E%z^YlG%9ddyikdz)fNbz4JgZce&@jR3S1#Oe@Gw@JgNCUGd zp=JpTc61Sht>kZ6W!{()!z&fsIBu5!Dt zIxkRZ_-nQmL7}KFAC;v!wNt~0-7UFzt*JHh;rzPbn3{!860ur}dF{R^7V2~9PpPqB~Z*;k^#m2{{Y4q+HY`Msr<+E!-oXWT5UF)gMDZ*DwAh;412S& z2h5XRoiNjeVO}O`i$$Wr#Y&57%L{w!REt(xaXB;}nDJpQ_aS*(9E2~rhzsXgJ3g6^i#`rwDxtbGdKzQ77zj-ZBA1Ywl*^>$i zdraCL?Y!hvMO#zLm2j;bl2KOeRxM>h{3_jA@s3O-GO!MdaaC5g@18!tTnDbBM1&(t z7g~6?PZk?ed7?2}J2GX`XEAX1A-ri6uj%};GQkl@GVvIrc#;xs+PZQ{9J+TN2^VkE zAL2csIm?L67T2D3eM*2Hx{l(2VnGGgyIq%-NL~XpY1Y^Hx9R7JZn!v8bvQs({oIQX zyZp*>0|Fd|UP-e15b}h|?d1lwtuM)`)0J@}XEKK-&u!Xos};WxjK#qsH=kN^7;Oj3 z+yS{S4N+RvxyT>a3XX=eMeK#tfEp(}ejTf@=Y-1T)npM474gGqN>i5U!{Ef)Frbi& zl&uNZlBJG>ocp)lLpS<&#Bt^4jax4kWF}tOGTKv1(9V2sJvJbUZ{@$R!8UP~+<8;w`r$)7v8$^j7bsZe zlH-3b2LAxXjRwiGRj-a)O)T(K73&}y1N|}GUKab~ki#+9dcTg(U%k_)voj`W%p_od zx)@~%!6u%hRi#gJPyN^sc7~@AGG&@9Zrj{8D zR~7DGy$=}r^QI!tT6Ts*l&prVl1Fy`kEs!lORabf>=AA z9KSkk`QhZuwsR+`7aS}MaWhE$GjVD}=q~Q!gV)mtW6sSC?F=aSC^)F9g4cNa+H*XQ zpQa(Eb~`v-w@S4dC*$$>3EP)nreCu|r?pHZh?gqC>E=P+IjQ=3V=QK*GX_(aFt%dd z7}b$hSovOldw#fCsP$8(NQDbCf#7~$WkNoq1#?ZtQcm#rJ|s6u`4PkCi1p`5Cx{wm zD;#R8D6=wxPqm1jL5FzmCSYOqf!w;rrFE9cHyV;Av`JsC+nl0%G^Rq*xCGeB;@9N} z)ItwEv1p1`&u5W_O)_HkWeeWxNvAJ#g2=SAPQY<(k877F?75ucz{Wb1M9RWzl{BPt z!|fjWNM~PZ_Kt_3AC)N3QVUbpTK z{9`$phbIz2m~p1Dyfn5tSvH-$*?zJ5S8NC2QOf1<4rb%GFYdT>0f`_vTBC7CP9+?u z-#lgHi!+#yOt`W9EIM$Q^-@joUJ(5r@P~i=V5-MF#C&uT>3O34qI5BH+NTpq4sv{} zNf=*fj*cr4E5%sk@b9T!oAkjba#^kT-kFGGYh0bxnn?J%>3UFMwJOZju8dC6-ECN0 z{o9{Wi``l%x>!_9YBwRi6dQHl371T(#W*71T2ZMSu~P2$X>LFH^9o)qDP1lq$Y+5o zOU=gG3UO`afR4nAq_IUw@z+e9_= z5xTG~%Whg@#l`t_#ICODk-IMr;?eWuH|2vIUF#GJX!}W7ts?H2Ww$IOP8%a@xPOD! z>xGqEG;lSt2D^$@7I6Ond*axYu8>`IZ>hJZ!?$0brY@qpit?0QQN<;Wjm(lUM|Da> zp_k)UZgzj}IEGn8t7Q!Pl~t2y$rkU(;*KDeBkpYG#O>kTWZ_vnu_lr^WwbOmF)Yd{ z5FSzU9eLubFd>V|@P$i*mL=%Ux9{`BQ%beE_=?0lsLP_Q{q2Q`Sy#JQnrRo0Gfxs- zUxxl(cng+jpbHYM-W00!3aNYZ+D-7@(=+FD8HR0Vnn?386bVL9k|vn$`A3RGBabf| za?=W^TVPV28%R4-^1(x($|cg%0-N(H9ec?sTKau(GdW=chei>vx|FV`36ya2ub)f_ zQYcVZ%w%c7zSTD*cJI`2$_;*)5)qb@hl)b+X%9=a1fQk^kpyn+5K?EJ`kqO2U;F<6 z4gk=~1!gWA+9a({hViAQy?p6{(TEI&cY8OEx|(tIte))ob;Hf<@XW0+mAmR0QnuQ< z!anLc)7R3teN4M$GjgfQ`&-3gB$t*;^HAz#i*6%|No!xv4Uvji*Ea@oXn@VjOuDqJ za{@@K44%{EI`geLVp%iUc`{w4mN!W*Rm8(G88{cfl}6~*w2r5wRLxHLc$pa@kfWPV zDCe%r@&%mr!pSLyNnWgTi!pl#z={?+H(yiK;e^?!`^92ok0kA@8+txxP5EvQFRm6C z^O=?)%*q-mLRJJTB#^ZaUr)~yJP$rzJkDJjT)HBwHfXJv$0MJ$jyBb=I&`iiEgouM zHt(}Z-MmzzE{yqjwEqCVoUfXYQUtuzvu4@84)5Jb9KB|T{jicQW7*_}=gUYt#OXsM zE$<`iwgAlPg8T2_dRC7do9bU)N6Ql_q@tvN96nOz%q;Jv`#kwMc;u|S%?zDR*cm?2(46GsX%*QT22m_$LOGFRq))3@xgG93 zDT!buB9Db_%tZQJVzJ8U{{V9#@eQf-!$#eklFi8iOEQ0ihspM|nME-|Gl?Qc6w;aq zFM?A}ARF;!VaWETSGQ-04-7ex{{T()pJ(Q2;gS>vEdElotyolZH6d{(MsD2gZp`g0 zfRb#+Qf$9}CPFx_GG%YdMk8p;Q&%yV>qp$|8c+J5WHZqdm6iQ+qQdU`_cZ$R`xj1PoSZG%+%k1FLOEmenpYOhld%E+q_c@ae}c^|rIepKWRBFnDqmG^>-vF*c576NvYyDb<_ z>R^84h&gYyFe7Nx&LQYi`C%=x_BNH1!%A`#BIo(gdSgc;MRI&j8Dl}UWwT)iA_!qtGO-%@4_5O0u=z=vHdXOR%* z8>sqqr$3p&k1Wgu4Q}Hc59^uiQ0G~yI2wt3%PGl6MkG+KH3^Wm?>LyjRYCaui=?YK)3 zT37!7jxLO~sw%H&U*>svVrg{<%4T92lFeIJHFlhvTIh8$*|^pvR*^b`^~KgOcHu^X7m~kp8~2g<)|h!;C7f2J)$I)g9Q>A7WA*gG z6Y+*slp^r|X0*b#mOEc_QO#Rz@Q*F%C9H8$P|`-mHSb8c?lC4> zC=ypLx6hZ)W^&Oy4jgd@6WZQ!>F{re<<4X~S{%8PMJ3B-GIJ~jMKO*u4-{^ut1;81 ze-<8Y&CPbx>6U?^a+RWZBxqusZrk4L7QIQ zmyvZ$Ancn}q+kF$b;L=PfX1sHU9Tdtu(O4LtyCpEeLX9H&ZwGmv;r$QnV1z0LGN_` z0G>R0QNWb7s>~EP=V<^REJfP6SCM8(p@wZa9!$1s7urasNp@38Z-{f*NvFwbJz5IH zVFaEOqore#z7jSx+++6mOUXg8g7U-OCIHJFflDY`fT(2Kbm z!-q^)yQiHzuw_Z%T-RtkX&${~Xf>pXa`I*=%a*oORCnB|gC<#6Dg%c3$gAGBMx6lP${OFbzZ89ajfq48%kHH=5oVmIH*5`M{+jMqxswW)b; z2`7h8?04z)!w&B%#!5fjXk9n*r$1g;mn^c#%a>5Xc$(%N<*50D)uyDPZR$_yhW3~C zgepf02cZ0aX!Q9TeJhPTxlF84zYu~5&RBW9n@g3{{q!^@-Ny*VXCO1u!I>T2aZ(eP zg($YVD&xtJp?X>Gf(L_NwScC9wt^TPIootqY2dm zHxic|IYjnvWXMK-&^Bi)m_Plg9$FGv1=D6Ej@SWo{{YkywLiXiZYb4wt!Vc>D_mJk zSHFk`qca`~RmazCUNZTFl0NXnrBS4ad%pUj%K)dY3Cebu)PO7d4rVwtrUJGTnvYsH zS-mT{r%Yxb{{RO};h>~YHLXl0Rg6pGUR9d0H9-#=VjtX|e|x{4z<9qtn^7tjm~T=8jH9Ts{P9R`C+yy$S!WXH&M#Gu(utE zKMh)(h&WL@n~v)miV~ya1AVcW$})y|p>jl)$xCYdE59jId^C5}fvst2dsBnY`Si#0 zA;04nC}$2WCEC5`%9yN&OmnMm=k|YSeLvq8q`J-JBzxWW+!m$(09~*Yh;|oI;EGNM z8|)cK2AD3HETDRt7$a=882J6m$6dU}KWByra}ouvjdi2|KO*m}Z70jFKWojw9Ik`8 zo=DPqHE8;8CD!~(aTr*HkX-P)!KWaN^lmEBq{|eRR-TpVTq@Nx=}Rh7?d!uEo!fjg zuqDPKMw)^UuR05xf}T4g>Q9EaJ<6)^PkgQ_Re73j)ID&`?D3qx984~}TAEqCE@xVLXS9JG*K-K>I35md|JgH2bw zNd!C74zicb<@0heR9IFi5}ZWw0m_4hxJ=$i`)$%qY!k{7Au4=JPIA_p{IJtIWmL|x zWky-G+9{GHRii9kB|iZm}g)NjS{U@1=kADvsZAH{{ZLH z2dhXe(tVN3E$VvWGcuE?2sX$60LiQRoJNTf-S91TZ!^o5I~rio#8Kkx*<_aY6wJM` z#UdEvjWit1-u`s1(#0d$9%4w<3zSv%q`4h#15tgZJ^SFceGS>EGm>SXe7vb-G6l0v z{uYjWqqK5Kr_1i&&(3>dckWC%EYpoyB$*kKL{QaqjUlBWgzt=u8c94|rc~xuAsWX6 z#^*`F@yg}Ty5i}H)jWRCBc4Bxhyw4g;Io$apEsVK2xFKsI?B<)&bfXENvGqJICB@1 zUG#s|#jPYQ4`NFBm@@NaV-J?g46dE$*%hdLql!~iZ za$TZ_F`LY)mXbe;F{ux;@3kw-*B{~WW+0a#G)$04;y-4d8RNKQ+FNz5pzh_bJFVov z#TV>(td)=KnXI$VE?+(?LomElJa!)HfSvbTG@C|`e->6qB+#ukjp}y#40rNHd~q^m zb8tRhEb_d(UG88;X_YVLD0r$l;ylClUujDMKD2PALO_$-Ca1MNo=8I$N+zdtOHVgG zgB4u7)TK;WsLV}Yx{-3L{Pw4=3!IO!z(cGJ4^2U8R~?8MxIH!XnGc$;XyNZHvWI-%Ud`yi6&NW<)m8ixac3G{1=`e6Yx> zjzBa%72^2#EwZ%aIn&b-wxB@j9!p4n;~f55;h9YA1+T`{9o;%pr}e;&cCviAz8u0w zSz>?Pi>XvJp~WRg7hR5AcCD)YpyU6}1lg*HB0VN)>+9cFU~ zUhiWK}dkIC|Bd;x(ipbH33TGg&UqX?U9?hn273e|m^%xmxwXNgxtt5J#Ah!4r%w`~cc`|XNvO|`-HaT~G321xdN)Ge+ zn{k&h-KCgaNElsWsv(uZBjZTjxAiz^q>+?bW7O0^$6!04_lvjwI?V9qNds#sTF7h5 ze^2F!q*O`5BD_*&Bulv3(M9;}{^?v>E|RS6`!}~hGjV%JQ530_?_-iFE8crNz0}`L zq{?RVE!pZS*=b|SJQ3!j3#Ve5z&)Evx@jaj@b#xqnS9I5U$T*m%_t~i3PmoiOO=dq4h+C)C9uBsJcD}g&kzwk{?bH!AWJ_ASmHI`?IrxMX3R|# zVW_!x5^AuBpYQrz=;iHZ=_mRlX^qVl>o*3lWp+OXMipr>U z@@2H5-?v;Mw4ymtx2oLEPm6!N`2PSE%jGGajp5Hnr*OJNwpYD8H#*hvFKEWT)_tE+ z9Jp|x`J%i*a#Q$69?(H135XsgfOOf`FAy9cMSWXmOZX4|)+3Pl`zNC8*Pzhi)Ezco43% zQY%s&5vLWTR2S!ZEPx7{ez<}s%2Cl68HM^Y5Sx`+i0T|o$NF!D1|*r~vIdAKSt`I? znbd8P0*BMr3k$yulHapw=|{s8`RX5@E}z0pp?CtS6uQmt|tbAYb>4hXRnKrM)@;05eejSdiU2(j&$$3ZF z#EQwn);_I{t~u72&E(=(BY94wFLat|ow*!0+J|cV8;y_BCG9aDUpth9>1=(e8ZnfT zvXze9_E(TJmXV%y#QE%`k-ueTC5nPIMS*0~hF60z9A`%>Bh+=L@pOkLoSIdF8BoUo zL|I}L-i)-~n{vSRJcD+GQ^Y`gypKL(vvbi4qt4aTg~wK??0bF>gXQXJN0OT=1f zGSy@kpJ>eY30@vn^6Sx?w4`YlDVx8u<%Ff0O}agTkjWlkRM2wsG~c%J^Fqrcw?lhX zgoWV<9Hb|^kIpEEUratnQdt3jX4;WyT#=`j)16H#%gm`wG8|h|ym4*B{I`}lPxdfl zP$b~*W&NBeJh%#1fAUWKD~zgSHD-CFAm?)sw4IyT@y1JLGjr%nWs+>Y^vJ-ZW#`P( z<$;sRJbkA=TIi$BKB1E@-cKayn9N5f?Ne6T0!LpD#TK4<^0{~wLncNUAxxbT!I!-1 z>UC(h@dL2xE0-}x5`+=udr;I*G&)Y@V~HdeCt6<)($IBd%gcNnDJWTPqMmf*KU_tVn4HVzTbZNfF<&4B1wZih>S+!6USrA#K zhy^XFrA{n5Y$;2seTz-ww6G}l9-Ua7IqT1!G@2GzCNJN^5u;`lyo|D29qeDH zpg56WlX$qqdLXNf!4@{$Uw0Ac5{q*zusTtqs4hG&&N3@;#B(KfT{%{q)EZRny?$8G zisp*@(b!U0o8oB5`h4)YS1){tOG#zi9`0D_u!ce7CzP0YnoUDJtRfeL05yC-lg+u* zVctr{Q7J{Lmhw{StwH5qS_~+PR*)#If`x%&)win*Tc69gdRnw-#$gXI*AMG*<4-VM zC}39~g0rkt*;YDVFdsI4e1A+UT~l5X){VK< zmi`QI0deX%w;eaagmw4B(O39Xc_)Ev5D^5P(507PU$Z~MM4<%dLyTe7gqjJGi1Q&Q8h;Zb9FrUvh(EHVuu zj?sp+HP_n3Zfjk-bHhT4*_jM#kxvGuVFD3Gxgl1Oo;~Z&>0B{P?s`ceq`6gh8GNCZ zw|g#UDJlsR82DLDcf&hqreOd{BLozUg+aCTJH{P6zPPp=)aJEDpk5TV?vddaKl?(Y zZA2i54Zs=2@&Nbk~=1~?KZz#Cg)%4 zhMZ+Rv9f*q&<+Wv$}j!eEOE`Jn9N2gEKzbSD17l7Lcoq_>ie>?0mdo%VNwCXX*XKz zwhxM@`C$+EWVwWp-TO{*eBE^W{vy&F>Ri(9RVNT;GX1!FFC#7aSo!8ZxyJtt-F5TF~>Z1hNTQLfLhRrykD`;w7slq-I8t^o&=R`h){B*@-4% zLaLdZoDU>rWVzsl<%&6_L-5_-d2+%W)?Y6sVDBN!e%d1L>LNvM?maWzk7e$DA?1tW z%H-6j)Ve4k5`x`TtnT@I2LLODcNRNHS zg1s%@8Dz~FZnj3AHkKe(NW~ge4(h`$f61lG`fGcDg2>T)Hh5CI?`9?ha^N=$Scwzh z<;uKC?>5A)GS2#1au}#xNUGhYz+Ec^{`bY%MAgcu2=WCQ($|GHWLDA?{c$9HofLd% z=lnY`+Hg!G-Og5fLO@M=eR^R`@Ie$1@H7uqZDF}K$HAg2?_Kz?$k5#-w+Qn5F`$pS zj3rj(pg5N?EQ{VH%M=_M7Os>r%G`21jQ%(IbH%dEnOKO@(yIq;L$iyc*+-@fWF)iA z6v8vHT&YB@8B|Ub-k$bDhDo-u2v+FTdu?a;wG{Hid2kF_pKJDjKv3on-WH|6>U;

>|Z>ip*nPoti|p6Y^jV%W(y3CLq;>g3}>jxPi88d zINg1z&5>-V77gU)NiuX-aIWUH`Mg#?R!+#^X)0;+mLzG3oq}iAti!e&8%FC_28_8Y zjw5n*Q*=F4;|eJ@gjrwYpFC$qD#y0tLsOQ`tC#GD@>7UowLTxoOq0j}k$WSjBor{yDoNdYd8Hg3S2f zB-je6chzP6PEj65#~w_8=%ShmzCvdO9I0nu0C_Grp!p-6 z5t{W!X^oasdk*o{3#Sd$#Y9Tw*ZzB)UKQH`{{S>`$>9Pz{l0r^sm8pPz%Z~8Mszag znSB^zFUF2WpLn)P4)Z&Lr25|Zmz**WU%apG_>mb0J-ajrx!n701_V29Yo_?zE=rX7z% zEUe?1XvJR>mEHaI#}Q*YQ_+cmnSAh1xR%eN`cFBc(*|h)$i{wx@$z`Ujmf``v&%r} z-HGZPh*{y1l^xBqMXAK9M8nlHhI9d&`4i}fl`@yfw(Ot1;0nnq^`(8Gf2NZXHO;)oG z`D7rvPUg?B0K-4UXqA)^jN!&#GQ*O($4JD%jH2V*E_h6Z$iSww)Zp(JB&dN$uDsf%=0Q|WlI4GX1~khnWHha;z0J|NHN z-mv4P^2`~Udt;sf_Z0&j65cBj#4bd?0iVN(EzyC$EyjBLa|`bPasxm?tg-Q|-3@0JWU(B;8lXa2eUXa8_o|5%*=@{&5j4fAH%`vwdA)#Kf_~ zJ*(cige>b=t;XP1Fdbb=&J8hFSNFa>`BpAhbX00$ME%y2sux$aFISLj9`FGZAL4SD z)~P9r@H(r91z;cGA~csHtJ=OPYXrF*vcNf$hRZEI3uqZF4mXTz60nOb2EZ}hTym~5 zg!ae;W*CX{3f~p4;_W+rM;*z@72!Kr>Su{%zTmQl^UT*>oH%+OMmLW zI^b#tmPn|s4i|iP%oIzQ?DW>Z$9gdcJM z`((4#>w&*k4l5xYu9nw}>9QwhsPCu0gN{NhPl`K*>lcf^D&z?uRe{-ciGZahlearv zZ#XU`3rAUKX5+_$EBVk_QHy6EoalBPpcKHcmw499Nf2|c-{;X5Axwc>X<5}z@Q%H* zASl>M#m1a4u6$#%jwW3|swLfme3e)ubcXRn3J1)-9Elm!bouubRR&HWXZ}PJ1^9tZL>0CiW;-%LoTsaqrj}IIp1PsxYCk4a?qzGk;v7C|P zvy6N}MqV1@83!>Qz>sRbQlgUz@lEo;kj5th2SZC|O^JGY0>mBJD7AKe10kU%i`64 z$TF~0N;=Y86lh2V0HR_%$a)w2f(xGkmnAHEt4oIwe7NRclYw@wYySWOhrWKAMq-Af zI7inJom$fx5uot5OmVolxEsgq!rC=2)T-kLQ|E>g*LBN(ujkhYc+SotSpz}#zKKc_ zxK~{F^Zj0G0O#p;{{WxPD|?)z%ux3DymD#CU=}iUpTCL5Kek?{NvF32Blt|K{STFM zCq9uCRAiVFz?H+hG-B*#^g_Ox%!07;RVjvXTexs?HMY;X^)Ry$*Dww#vPKeV5$re4 z?}-SAxy;(AFyj+j(Wl`?ePYRy8O7=6`_KR& zBQ)<$8oGWtg{Oh>5zx$LY{)DHif?y{&;eP^jA;bnQqi$<3=xZ%Y}bI5S@31RU5j#e z%(I=jD~iTsaJ7B*-h)?xv1kR8N%W0Ao+>F{5W!Y&SjS7cLMMF~;xcA1UE-W@a2p$% ziC$)TgdLFnXQulmQb8;_khl~LQNhBA%}b7-BWI4>H(E01Ktrgh%!eNzcNN9_gnisR zjbD_7-cN#WJjW%_8emb;*mR|=H#MLKf6i_=@r)O_VzMjQ<2<$!hkGozDj>@-mjM2& ztrLdm`844xD9PGn>EVz4z=aou?O&67g~7@dWCW{QhMTd&#L-A6VTTR<;O09K+?^9l zKQ>}!F}&~*L;yFi{3{+~pz#~(Nt`3VhBtgt-McjK=s5=K;lq)RwY9a?q!JlDM_%*e1a!Iu-WPkJK& zE`}H#%`*HAPgfL}fKADy71^@OLtWD#R6uO27mct9N71nVrY=<&mD(lymg{Z zu}95kj0o>-Fw(8kVG@JkuuCvw4Lx_wE-PKC7eQe)E*>iF+>Xs9|D;8P5VK&+E?zAIGA)75$yC}%a0IXYue(B z_E$4;*&018=cw41K>^e!jfQAEpv z{{UPZSKfGt>Hg0E^h)j4AM$ff1W6V-3<>by?OPTLpADl|%>-!kRTpxW6!2v*;S&o# z0m1r?OA-$ONi3*yqfTP=C_%tBa_3HD1|ryARzQtu1``B|*jUfFs&gXp&Ngr$1``*W z^+)^g?QtF4P%Vi(*iSC8uK5U91eM>`zj)9~mkh#>&+1-HtM#JpY|ralYc|0l)i8Cf zuuQmuMy6Ba{kij*k>TRZW@duo?Ivl)A zH!@{}g$xfvdj9W@M8=-Tho;&dDH-NO%%7=UZM=E^0HxJ1akj;{spj&P|R)6Eq(q$lOeM z;nhV%bGVq0Ae&NepSnDVU_UB%55ja|hdOhjy^LnT^@TFw*$GnHe6NYVlJKTVW*SnR`;;W-K;% z7nxvdjjKs~lX%G-b}J2FJC@0LjEE!RJr?YT?s!}*Ow$sw!?XO$rB*OaSF;$<;pVfFTO?o?ht&V=15v! zD&jdh-<(w7o*()q*5&#Jpy&C3)xt`Q27zOqtcxR^tS0^Su)RDq6K8rV}!(0VqEb@{=uTE4u+!^@t(3?cRFO4 z`S9iGMg|2>oITeFI+chw9>ofVb;m0z>UW#^JDqR>zW8(HNpy8YU0I?SwO{Q!+ z=$7W+^as{zAp%DjTZA>|eH&I6Tl$aT4{(m7h7kV%;MMWRv!;2bLvI`3Fvim_uwv=L ze7tsJ-9&!Z-`*Z^7O_>Zq(Ss&i65Z8T{n(5b(BBT1^M;HzgMHAF_ZSXW)~+-fs8PDoML23sL=(`B14VFVux!RRqoia?Je^MJ z;t05JnBZ|6sVJ)CZbLf5&huQM+9PzQ6)`Dw$+{aoT?#XU9y4bH1o0g)+B4l&*m4m8 zbbN9`=X9QbQ-Nj|rRkJu{+?S2wL4e60ArGItq)570FrZ={9u^m68wQaABn+}4P?f* z3)Mfoc*-6{6)31rTX11AN>Fu#)v@#Ek)~xyjP|`TtX&)f4MPECZflVGXhD09eQD`4 z{{VDvPG(Q^pjt?6!Q~@B5IV-O?dLpTf@5b&{{Y!ZdA+7?daHh$K#<=T$}sgJo%1B_ zR-IG=tZ!!x?}TguN_sekaBNx`r?MVjoTC8vLdI@PFmT%O&pN|1b10^Z{B#pH7xj10SI1e7V#)CFh7=FQsgaqhkl|3ZMMA;Xf$*!q)iv|x zZh|~2Wx^Tq*(RqTqr$q56=6J*Z=Odb22LKwmh4ReZvv?+h6o6IYojmDdd}Mc>LdJ9 z*@p~Dc0NgQ;|+&HntZ$OpBJ;Y?}^AUlOTRhcv8Z+!2MWU77+~kqypt^`4N+)n@(g{ zb#p6cYL731v%w;F8a?m=0f{m@zxE#-1+RONEa_@ST%G{|$X1xgZp^%@fyu>y$Af~L zm1s0otc`2sOfV1}C5NSQG4bRE{5WqDS);M;VW@}-Y#E}7ZRwOOK?^)@{{T9Cp+l3K zs+36fmCE9=raP+E&Kb?X9KB*ov0{XhMgtP}V#Zbe6C=w;2fv~-aAbzy9&yIqlJ>4c7HY_c&-vJ9 zj=>3jn~Cb>6GNQ6gLy$OG`<@~RM!3)e1yjje9ZE{9@V;cN1!qp0479z5Jwvc@n*@A zl{ahl<$ZJOn?B$k)zhzrD52pTmRVj>fah}=^ezuld~2N<5Gtu+!>9bZo8 zX0g@mijq6sr%`k@ago?1(2tASbV$b z%kE2Jnk`NfQ7dVcmh?dLB%v*6Ur1Ae25K{0NJOB)G)!JYYdu}4Cwvmvj_%H>I;h`X z{{Y1|#J>cD>4~KhN1Lg>2OC z@usex5tGFuYdb}GQC^Ri)`>;;lw)yR1lJo7`8Y9SI z*~o0fV#s3cG_Bbq-SvvHWgr0>qmNr84eXF9neR^1rkzW*Th-Q)887IJxtBprTvcwN z`k*Z)IwX6|T<6MR+#o@-4agm?14Sw%D=F&|&ui>)5-Ny6GlYPzryt86AP#=Y&*7y~ z7Vn>PGWFIWgv6oX?p(}aI7Y!Y1S+;s*1kBwK!kZrV5DwCe#a97mMN>dHZS5j7qs7=M@;)rK&j znp+zF*5|CCQ@bu}P$9JF@G(bEUicbvY_@5HeK=(Kdnr50-@L=>vl5F?5bh(rDpS@% z@Cdh};L`2do=fcgc?kEyuFvR(FJOHmkqFZqhv+x|0IOSo^Fx%%`TbjBA=Z!o0O06N zvp~L8SAPwV4zbthwLH%9{!(m~2zwncL%CkeO}3IJFr9@B^S^W>(Q zVgVmWM*bJfPb%7%N4;S{1cu-nfSJ4}IMQp6{_{1xy4*6}ofI+U_5=&k@99`a!gX^_DdK?3h=VdO+mxd|c5L=fGOXIG2rGU-~62-lXN^U_%I$R`|P1@R%?Vf;@aJ z-k0}bYo16ys+F~@u{W)ayh~Vy1EY0aI&AA@NX-0@F7~vj`2PU$LiH&>BB-7~a2zzp zge}V4!v6rny z7*S@{twJ}(O^Nt4zaa_`92HxisSjz81Ng5M@Hy-b{cAXfiVkkOgl)za!Ao zgWP#TsU<n=26!z(iG{ z_2oxNobA5iYqX^!#r8!dU+p|0SZX2yn+9m2TY6;+5JJxz{{YU3j}4B%SN`nHoef++ z?2eqKsUCB12QOHX>{y{Bk$}X#*s+y=h4O_CPHw7EBidIhipH4kt6Ml_1~fJh5>RP8 z+eNNk7HD4zdKpZPfoR$#I{oME3{4*9G_hYV0%qy6UZ5tm_8oMPw@KD%>j?^*Hr~D^v{$YcPS5%fXSpBm>zL<*`|T%cIo1?wm365Cf!z8Ip1gmPJB zc}fGF%xBQJG3As~y8LkI+WGh@6!Sgzp3u_-kD@PuOjvLj}^6DK;fA-*N`Oa6q^oLdMG`# zG5uvZfz} z3GrVRtWM&j`dzjk<@~3;Ga?6bpxluH$5*n!JM*vtR3l_i+Y;bRJXMr& z3HVir&AFkn4xQ<=YrTyLpKurEr!5{{gS;bUb5hE+u}V~QJ;uP(dG=^Z$!KM{f!F6d zwX7rQ5(A=|n%C`V^4iZ=Y6;&2wj;ZyA~YtCXlpHZ*Y~UGr&8@!^>w61OZp=&WzbVs6*CT zF(`ODmopen5wK0c2+k4$zMOw7cz`+kD?f&nNL#*n{st^PZ!RIn{{S;%p7RREP=ePP6~r%nr6jVbz*PZ~YjDxe zIDhYXPK_S5Wo4V_Nh5;y^?omA^CcI{Hz}~Pda{sSgiS|@#vkSeHDQb>CYIXtA^Yq5 z#%Kosoh%j1>lkq!Q@#eAn=P7QA5IxQUdm4Lx9>3cYx`TCvVl(QxvfBk)1$z}9X)$? zr;__WUP3+atF!tci`XAX&d}CBal!K5AX)hFlb{W~x~#`UJ!OxW z+qM^eB6OIYVYrz^o51R2%0=T>SN@4hcd0pf7!blG6}~Rg)AzDrUR~(}lfm(GL|2~y zYarrlEKTcUZxYrafau*%zQZ;AQSN$mk%m$-C%O$YHvNlGe2sN&{p zNA4G&A=Oc7Au*5aHh_&$JL*D&_OT0_d>Gr08APb*? z@*&WoyjQ^OU566hxJP+1041Qv%r354v=|SK0WwFX+20hcj3(a7mTwud8q@e{cmC{@!_mPUsrRb}lEce!ZBS&x)29C!QxvzhrK{ed+x_o#mpT`)Y z1)5Hsd-VJmc~Ar#E)awwd2eKXF94IWe56rm$2F#mV}XGv;@#85n%nCbywFGn!Z2E3 zK1LH}c)(0$+4zM?a)TL(#8DOu#!F!Dro-0=*z}66ehlvy<|Jd)Dbd>&QC09csMDHY7jh!SNqPA7g^1E zH-P!wetC==G{S%0=Z_r9rew;6&u;wR+r^5EO)5tR6kW9QjPN5-Fq?@CpaNL~Gw_PS z`Y}Mj=Hq{U_>yHD_<`ehc;5s~35K$E;uV>PW^>Beg~5hI)0I5;h-ZWh0)!%uRSA-_ zr?^lt5s+px=%SS?npcSa5TIKe8uNFE@C*5jHqs!&;+gIc3ldUSaiPC_h zXU1Ect+T1*sIr41W7hiQy8*aynB{+tujSyZ5%7bI;tl&R=K_{8nPBdhs$@>gOz_K4 zF&{TE#`b*p4h%RZ9USWG4l(}#K-O=DRdWS1ex%Is$xu==SG+$5&H{4?9cC^BxNH0? zH#jFvY+jFp7}m3&8Q}()W_H0En>~}5ScDU$rZ)L6vgeJ2JTE^EiFbVxr5i zA$;8B#}L6&H#HzrfP#fI;W#K00nl4j_TIYu@Kf4_Gf6^wJx$83#0f)yH*tZ64ll#0GH=0SdK3$kV;xmJ{5{Q3+Cc8difvbHz~vNQSQ1CK_XJ@>nH9=e-{f zQbULz1*mQ;!`|63myp%k3wknM#`lYzoC14_Q@+TX6ch<+jmF7@%;CE>04{Mrm)|F$Su3Mw8h0!Dc zqo8$imlS*3Yj++z42A)aL6_IIdpqDH_S!|sMC>dv3yN~fsBX;+nGAI7_jo*}6Be)z z&tv%~e4|kr$h*&7jlK>WvdutVU9GNe-PUm`f_1kW0wUZZ?!Mc?m;(k1F4)hbudoUz zhD!({tOq$Q_bRANLl~nFhjocvV;73HdJPvQW=sw*+~7Gt(=4P)W$dSy!xAZNlRX}3 z`qmy`h=SeLG2Ir4hs${|(ONOfOuNQE#V;=$ft!UM{TZ_6{yC9NPbMaghVAi#zB1(l zX;cMfxSMCy;Twz+u!d(tFml-^16Uw4Axw}0sc7Jw%Fig>hKgyQ+wP3iw&a;gFz?CZ zILX0~IvAtXK|?Zp<4l+Y03gy?p9XJ8DTA=vP_~{Z2Yw`E>z+xaiO4cVa_k`a9p`WgMqQsU-gym zjFZmGJ+6)C#qW@I-sC%YUEZWgI8h*Mw>EW&^>5Y@VTlyR=x7M46BL=e$(npROy=rK ztGsbiB};0-)rZYKUfiZFwv4nGfLA29rwACSJd3ezM7@YjJX9pWV=jR+lVvXExiAe1 z`DRa5##wvc4Y0LOMqwjlm_%l|r%ss~8ghqS^^NgZ!0N7H8g2>9*9 zwai0-bDWv30Ni(7{nrn|J?#e?PmcHi$Dm9bT)BJANxt&XH!b7j%aD@cTdWThRx0G+ z)~8Ow_%+6YXyKM=)9LHM=UfkA4Q4kX+n3(S#BI@|6Xj`{@2itM4$$>S{rK;QfzFiz zV&r;z&&GLxNJs@<<$+EA0FvG+uyF>M`=I3{K5u+pkgk?6v`4Cpmq#!JVS5h`#{T{X zkQk(}f$6CHWxjpz1dd{2dE1?9&B5oDRAs^iC~Y%idhfN6%%%{#)>9DD8P@m2z@ols z3y=b#tW&J;nr~Tt2O*GiAHm-;Xf@Td6Ir*$I^PsDj5SXm75!@$fV*SRuD#6t@7Ehg zDSFlspfL4^Q@O+q4>_IZaNaRDo31JZuU%Sq{{X+oD=?nnfV=I_#;eyB3*fWge!LWp zemPW~NL<9YdUE*Ix5UpTAnT>t{{XH5mKdyz(vi-X@6QT=C}$(_oNorrUS?J(88p?+ z_IdSj5PSthQw>~7Tvg)g(!Cx6kxbzE<#N3U1zJ-r4EX#UmWu?z9h3}gzsTuGK1AaNR& zZ421PLV~xWQC0bFPM6mxo*@Vz2!)Xb=(y#sc0@G=qO(4)T!cjl+XK32U*ivaGQf+p zl{OkFM`mVtVJQ_rJ8;!Zy1qBd01O5vLlvukShrjf87i-BCzbYec;)~misvO1v=&_^ z9z~ugRt7M;j2cd|RZRk0AOqz|ckSj1Q~*#^!5=9oHpe3xc~P?@x%VoV&j?|Am_>7? za5SP#Vb35rklPZDs5pDr61CiQxo5W+-mYdKag9W*=wXAh_nkQL!~*n2Jwi`c{h8pD z$3a08o|c|H_~X$jGAYSR_BeaSIEa)G#}S$tJP{!6QaKDR!NBa}0yaPa@T+x1x?O9D!sVD`K}FYL*Y*nv)d-@RD8=Y}Nt6ws z2(n_+vK+3=d~hHgO{Qs@mp1vnPEY{47*UrGr^R&5@NpRklJv}KXMobh1*R1-N@f`= z)ZzsO$qWb{I=I2E<{<%qs0>;d*U+J+SeoJr6e5Bx!JM}G{q*1=Jdq{N{C?>*%rhHP zpdp{Hz9`v@hTs&IxK^IM@=O(3tPU`)nn8q{&W)ktYATutH%Q#qXo_Tfe6IvRWp$H7C9_!xeegAeW-zZ&?aVJnj4ltc8%D*~`FU9& zv_1ty&Fa@%c$4(m2Uxa2&NBGKV>s&UF&RCl<%VR<3k!VyGMWeH?HMflNAy7S?|66u zkdoqMH=*n9!%XB@WiHV3r8W1Si)e{Z0_C@4@r=)1aVm6z9fPqmBYok-$R&e=qX3#f zWxox=tx(6ad*ZUds-_MlEFqb1v*2)NJ$K9?xd{2{H#5<#+i1Q?E->%kNcW7M zc@#2|0DDDa3y`i?7d!;8HpA{;Iq&dOjYR}nBr}gXLk-8HfTK)Im2>ma_3wd_z|J@O zeCw_J@l}R|&7-{F-7%kBP`Y*%v*a(v^1B`)5rL!;-_2|H#T0rX-iG|&bn~8FEnpS` zpsdL<>S%C<$*pV-!(&M6O5G?~?}PB)J3c4gBK-(2bd;a%s>ePvGg~ zqVfhajpDuepLv#m>fZ4|jOER~JK;?bu?e3QE_$eVQ;LHu3M&K>3Ng|A2NyaJfB;&c zGsju+$s~6O04V7}wi7OUaY+DF62U`WiTJ!j-ol6UCze$LYdoVOqf)D-C2B2)-Z%v$ zCRED800*DrVMwNAD6W*L(ff75r8p`k0|k4yhHlMrAONVT2Toq;kJlbFp%oYMGCgij z90N%&f%tr_`P+iH3XAX{yE%G+-xZ`_XepRJ$o1;s?FwS$UcM9SQgb8@Lw6YkhLc4K zBMFxWC4A@%O z!}xF^wi~$!kYp#B)bb;8VNAPF$aV7PiDqGJV0RklVBpy_yoG|rn!%B18KnGhMk#=( z?5GuGb49keDWE8hjli-~&WTKBHjx3U_Kw|2oF2{xETk=H%U;YZAQ<8qcn`p-rW?Bd z01k^LXV^4a7W9625Q!0Ey@ah@)COyLEp;Nyl&~qkgUsZYN?OYe);Twmy|a!5Ru?F` zgMvzB@jBy8L=p-EN4c>701N$la0ZoKuD^KC@ZJL@gEAOU#oRy79#nja zimae`tW5kk0<`1Q5xB|Ghr_GPqX(^L+m<~;qkKksC{nAtD{^jT@N}`W%Gr@nU~?mjwaJGguttv!AzqJJK+fm zgd}G$NWos^SBhA8DPvuYiX#{0x_GaZis3Nsv#Oq*AexDU z-Pug|UHx!r53D->00-w7UKUVs)ESu30v`|SIq@;0{86{$UmQ`+y`8#EdBLmS5>E{w zjrh;3zID71_U#v}0$bq5J~;woS=bF@{6h`ziiB@9fx5NG@tHm47by{lZjtE6Le+P9 zpjopE@t%vDf>9o49}s#jTiVPH!`};93AQ=#9eIPJ=>*GXoB4?EelTZ@j00dHkHbCr z&lo|z%;EDSSos-u$1-c}i*~sg*(~v#ynqwP7rKmONG1au0YCu~M-RUJ^_)6*TE#T>?LJ8l7o!^0 z;pAo|OkuI}Yc+h%As`fqFof{`05_?wIE=DpT%F^@_O~}2&WK%SDY`#1&-27aPMDBO z=KUn`z)>9Q^q92lWwH|-Y|09QVxIGovgdo|6CeRxESbY_-R^FLW>u0Kc``?^@#7pd zDbd!_?d~g`U!Dld^U+S%-hF2s@fSujhS73(M+z9~ndPdE22){N8`*q`-grjX4%Evw zX%FB zlsihy&E!mG4l)|^#<_B*1psDP(N2r+fT+XRBjYkB?=E4=xN0H+b^=1YH}Sx(x>^J@!ylY@1HQHLJ%RO?f!-3L5Be7GD=R`feq5fB>@CR5Yi6bre>Fnauv2FNfN;^ z)(v1exx-EUc8q@$J~@==Qmsf;sgE?s)246*grpfMDeTMj;b#)b77mh-EIVpfu7pT- zO{l8vV<^qi=mN%Y+Shg883OdnrXe4A z&h?8e%7Awa^pdj2=f?O}msnjL>iRrqiuOhmrT2He<<=f4hY(zi7N}L--)A0+Xh#rW z)OAb@`sQH}XbJ^|ELRNpgN*P6lpUt?=UwN4dr`)!{~j5aqPRvCgD>oQyz1$yknX zcaHA$cwj@AVs>~ev$9SlQv))&O@>0rhvl>d&Y>PkPdV7RPfiY&5Gh zb#&~R(VHeVAbb17coloWe4S_9{dFe*HJ+i{_ObQ(cmg*VK_<4q`&Tf)2nYZ#*@r6Z z$>QgRBZRrmCzWB;`LD5oH$?5$o#p%26@sX-Fq^T;$Ig4l0um9CpyH*V!xht~JaG!4 zta5zBN&Cii%$0HH6UZC$dUNAEJj7AB`|RJT^pWF7Xnm(oz?doLd`rB{S09Uh?e_CH z-QtYLl1aQ{&dbP1F4>lkoln*88+r_$Y;+Xam|Xba(uWFV-;pps_JfqUHl93b#l)c8 z_BAWhgM-95;CWO=|VbX%=#V z6|yk5Hda0|D~BNq$~J zD~Ho%qLW@D?>IQqsW{m;)(pR{xLE^5i$8!BOZ*%t2EB>A`_4Xp+Nz^M5xeT*vaim) zFw@~3x2F%57}TP16tHL&D!WOAhCF!V9jdW+49nkltU;X6gtie`B`H3Vx@gU1Phc6a z5*OFxv^q?52ePKq?eJMdAQ^JSA|Up=-b!Ma>MkScg9y&8n&K6e6Se|mI&V`NFebMy zglU}5m8_lvlC&YwG~A=JCzFd<(3N(>2!h7_JK}^zc_{g3L79+u3&McBNf5Dz1%G|W z{<7Z*sua}0k`8#1FoA6WHiUA|r#d*I%o*0<93qj86~bApKX@*#IDi^s!`YJQ zF)_QaIK`kQ@-v{;+}*A%;8tH$x4_3=)V=TdtZx++m0m~SQEpWfyOfb035;w z!f?-m41Q8~RpufUIw9m>vn=-nHVhHQc^^XK%K3WC{jeo*la_Z1QCR90p(Re02Fe>OwT(pz$pY!#ztDy-}1YlR+I>^ zLgV24x#EJI2n!vN&%9&C_{2f*piw1KsyKI>JJRui@i2rLn_=!{<>G(K0@nbKhMqF; zj2{IRnwm3lta!XYsQ{S+EZ?t+YGF|ig&;A5xueH0bEhqp}%`uPjNkAT0i|+4dP9~=TBSt(RX$j=EeeZ>US)h!5 zX7FeA#X|1hvUh1^_NO!mPs#Y3?*9OM%MKB7jo+L)_p$4M;Rn~G&qr%N)aADTeZ~d#TJ!A)GuD|N(heE4~bw3{&%qQ!b0tY4vk7TyvH2cSk5;>cH zxt{v?T*7_ptav^$aTP|!{H>VTH;;oHMQB3f-MPBfp{_SN-x-aQ{{RerV3Y`cy)1z- zpLp}Y0s>0IS3^yo$Fqkk035JPBQouBA6yEuc?K(?$I<=pX2@#He_&|Cv#v0e!58l} z%l`lmz?qDIEa-h7!xA3}>M6Cf>%oX=zIx!WV4x zUt7(uG&VCG63X`dNrQ>i$N#MCRs>U+9okOc_o%p0{j4&4YPO5(8M}eBavbV;}=_;X~Dh40r0@kX&<<{c zX1=wKm#mNiZ#cP_F>!j~8OBNg6V1<`*NdD)6}MBo;3m4bk?)A9HltC~sdAds_08mw zv94kPj|V$(*AcfMiabK(3+EZfq;f!r2sl%)sg+zcuqi-06fMP_erMklv82Q%3dFr> zx_XvVD@fdJU2kFUz3t#=B+{6{f$i97WzI~=9AM^4kV>6R=dC;zigg5RLJ$Wz&DQh4 zFocUBL9Y$J`f~}=U|0d#v(GG31SUrZZj7FN>hVyRE=yd0Z^iY-6;_Hgb&Onn!^*dd z3lv{;B5(-0cd^F=v7~2kCg?Tx`SZY;%J@qFlSd|o5Dgv9vr=s50}crjl%)zQA1P$ z#kUWfrzJ^r{&ChXU|jXdE?%JJjr!Dg_lRZdOrI_fA=dHt&d6`{=*W-O8;$}&-*5gg zHM8qhgP3S_c9=1oq<>MEH>-+2f&G3l!yn*L_R!qVV~#W@Hbh#9m3)429tMns#)Wm7 zh5DJNT)Kt%zR*M9E$oosCIVJYn_m|;Ba3)|#URVCuAzN5#&``giL6t`P<-z@?;wq! z5ocOz;77}n-Vh54Zll`!{{Xx^6vQPuzLh_WUoQhztYC+g=(gsQ$({`88Ow>kEtv7I^F&t@t0)3Uh`; zD~*Ztbmm_#I*^-cEJ9&DL zi&N7j%bVYIIF0~gs8ea?W@Ov0A=wiS-3g4uGx^5@IYKLvIk?6#@*f8=WYtt7LBDOz zJZ$Db7e%!u%sz^m@F-BSK?fK#>=({ic)g-d(FDxMq8$U^IYq)uLX@!!{{SCcDG0DY zgLDMmdcvp40Cz#Sc7N>tId{R40cJ0!7`(`Knlm4sptHQvx>AinZP&|O-<_EZwNA1t ztznFWhFa5S7iU5>(=}*mg!8~u0><@_XB}qu))??*3Jm45xXgc7&j%D3n#G7;cK1DT z(8vYf$sOm@i7x;t@HaUaGq84E__$?*6v|n;6C{e5Da1io$x;|NmgGRL!pAK#V`)3>`rsmd0+5(VQ6DVch5)^h zS7ZaH-`6S-0-MTXehIF!opV|e)iA43GlBTs&jg79xFqV6$IJ1>7YAZd9^Uu=0B4Cn z;ZODv!G6MdoE}R@Fk`V-35P1UIp8}~I80g>We(iJ00Wh4W;&U#^8Ds{6V0A7<2C;P zvIWNj21?*_gDuSWuk7LmTk{#a8JRb{#m^BcuxBWq{Jof;w}w#xY~P*h7=iPixec9J z<7T{no5n?=b}H9!lf>%#!Gfs+05t`Zzs$kRjE7^ia%&pCX8dpxM5(t~aHY}O`8=F@ z0>%al+SYga;t-@}23a&1Us%W7h^9tPut`f;NSPL77Z5IQQPW{{W{k1(d>I9PTO)zr(H+q+n74 ziBPj{^*!xwjE>Z z93$AGjZAA3@b#|wEfP401LS-stlz$3WMQkfStf{6yZ3As?l7f)Twby53{Ihc*oCg2^a!>g_-LIY?Uhu@5riMw@z6-<# zv3k)g5CVN09z=-2T!3_@Wqpmz*a^VHM^uPJclagO0f_}vC?!Kc?WXT2b^@gu%rh+6 zyL%}yW?>LIu0?c+Og<+RXQ(Mvrcl6z7cA)G0GIHd~ zCNTMyH&jcGs1Ru-GrpJRTBAzZGeGK$e3eDGfQKmt34#hFn z_!tWah?sVdcs%1Vam6(dy}3jDOV#<|6sSYo37q9m%N(&ILu-XDar24SEJ+{)g$E8i zzPcv>4S~Up^l+T!x!Dq?btob-J***imx5T0i-<)w0 zlunj$aJ<=%%;6db5)CQ9Q|7EZ23Q$Ya*=%%=^f9;IDzjnF~Ja}bDFP~dL}Ip#B+xM z!gF#s>x$%rh!-zS^?UQjA3B8u>qj0Z@NhjC(UG&Tct3Y0k%Nd_T==;+#4g0!$}Tme zXXh1gVw!fm8ba9GTu*2Hk6coSCQGZ0*&R==BWw!NpKj%p@!ISv9$k^0&uNkMoS1~A zy;j4^9-QZ=h$sj!3o1&Z-+0fi5akA~kX!^g2TA5-;AFvZdmUW&pU+PM@?0Jw2~5?# z&%PnqvWjlY;{O0n(<+F!!Zn2P?cH>2;AMtISW|KUkLFlr@dA|2!3&XRZu+s(@MPeI zpx4k9(-OkZ9K;~TZ_FEsKLi+aF(tx$j*t&KPf)Um=DR1w&#mJh2=g1rCOYr@9RzPK zJ9J$z#(ebOSiF+rQ!&e=l0D2mF~IwNKE1ciU;YID0Ke=SJaJVLIFhTMtn2gN5oioD zvc5Mp_3?y7RvqFkp8o)^Q-Bi9F&^W`v#al$OvYDp#b3_8vl_PM;D#sDjCqr*$TUNF zd;T-=SL2e;;0!tLc4K>&f@?sui99v2m)1AO--<2kFKt$D51t@0#m(-l&s+Zhejvbc zQACcb`}w{OMNJ|{(jyl)*oVzHS5kQRC-v;rS z!B9Z4WeMIyv6DV?IFj>e6C&e8O}$&pKxFC^90=XLo(}H|U@?eBCsz>6$WLxLNu5w2 zV;j{`TQwaVfQ_{?=SNxmN6#8mLFrY+RK+)}b=C<3F_^(orHv#({LUm;039hBZNp01 zdmb7Xu62c}2t`H9ZnHT?3;=SdMu?QiIt8y>3(;$inU7RQ?V`f1Oym%)LX)Iee2rh$bc;g=lh1x{uFnlcD@VK0-<|wo@zAb(Zo0>K z>)vsBVOklGU77S`^^Y9vj=?QUn~uCLUIewE;UW6ZkGyM)IP!nE-u0ekMF&sG-oCDU za71(HmmloM>wM`7f|QAF!{_toq~NH0TEdjqj~V+?GAeAUA$!U`ZPsrMf+3s~ao{rR zAHE!jW~+ff!L9xB)g=vqyF%`JqH-~Z;c)s3hX;)G@E?JfCJ`cr$V2Nm;TAwdq^?yI zPhxvzoeo73?usg0Jo+=ndRCrt!Qc^EDo2mgqSv9%>l&^&tE#_7ahiBzJ5(Z={WbZ z#mgN%XQB7!m}3FB>4(HNueZLa!xz>etB%gE#~iI+DU3#t@EI&@`NJa1-Jye8_nrLU zfTmb6*1OhZ`p)^C9fT}rkB83T?}b*dCM8-_y2r2f3QRzQtoZSt&+vm4v}4|Xoa5if zdGl}Gy=VFRCkwDDgnZ{X)XY8b z0LeBQWeilQ{Aa!}Ow)lGnw0iy^>_^+g@HiJSP?@r&L}sUsZcG3q$O5YNlb?Ugoi*x z2$1NWWzC~O5|J&a1d|wdZ{vg3Oi35KqT|)O#m4~Y0oAr6hod>~bA*CHn+flMI1|Fc?n% z064he2n!}`HU<0rZ-JB23MMjJsfVQ}1*8m!OFkwPG|g@Uz^YHM$xUI~Z93yL6vnIC z9j0^Fq`WwJB~e^a7~G_bjO&QbR8S+-=sZfRs-wU#M)LF$(#$M)ohCglC7D`zgX4lN2w)3@Xcsa~=LQZrCoaGPY@={MI_dI z&x00^jsjX)lR5y-l-4s`&9z#O}NvfcZ>HY5+egKRmH2f8T!XuBcDRKxWFE5xeOV=%$FyH z!=HNB)_Jj*I``Mr63(7G=v5pQ_1?+k^Hc!}XYC1p#z)(ZA_8ETB<+I(K0jPc)(mQD zxyN~?KN|%V=q~Ph$WHO2JdC(ABYotLMb7iWjklwbvl*H#X0Okl52%l>pP%u_K-A`n zpCit&VEI>s8zsbQT;u@m!(L8Mdj}p@<0ocu?B!6k4LD6HsNzS@&j_$}G(Oi3Lo+ka z7NDZs3@)zntBij<312!f=guzmpyiTk%$-_<={Iky#1gdB`1ja(hWh9fEqT6;`zO6~ z124;`@?`b;bIBt7I2+V2neCf&2Y)p(esf_Ad~j1H%=b>OkFmqEJP>{CzF&{uuBpU; znLg1-8z$s4z{*fHi;DjMpS~UrSXrffUG?>cJh>SIdOAN?`InignM#Y%)yA-6e5g1v znA<2M^}mA?iBP6N(}zB<{uc)nioN$>2KvT)eVXM*Ynp+6=6%d$4O#M%IoY_p8yN6h)Ycu*dqJueHHS#=lee)EiAOgkC zar!LlfIy76GIm`g^72@%_#$L>ZejJt6;^;yB%bm!ALoXIP@OVp;&0^m;31kI6BoK- zl9isU;hWH?+ey((cL|(1X9F^X%n5=@oIWs$>zgh+}F>5le339Y<S6ap%n3Wx|`mOv2-MGXrJGUE=0N#lw{VrHlr4A-#Pye70!L<;yFIvJeGHEvb(#o!9Bpd#0Ts2}DB!JGq68bB7b#Z52cX04PMbfvGZ0M~eYaG1&r?$(>^v z6q&d!1j;kDz&tu19FAphBSi6*iPzu50*b*y1lDhEaef=cmCjZuS++d-K-6#|0?o!U|Uuex%ROE=5wxX7|61Pp&^{ zDqy!>d`In>;N6#NwXSO%-THqWgyhmsBh=PunT`U&*?J|&N<>$YdlYt-Hm?Q#twIa?iZ4hKwDia(BbsqBWG6GTDdod}|?c{!1YL02l8b z?IyE_w>U3jF}zN=i5D1tL59f=p8cF!u4ouAqd!06hk>IBwD~fMGxvB{1SVvgpB@$O zo<rli&l1w8cnjXI@`s*eg$~P+hxO?`_{lm9)^(j=#Ra!M;oXuv{USMi$O z0dZBk1!fC0Yvbr99ApFmBSdm;I8L~r$OahKrMbpckAC=2UYFskO$K5>%j&%?eh<5a|OA3pD1 z`k~rPOywTKOTv1FFa^Fso`f@n&A_b9-x9zw2wumZF#h+$W=$6WgB1^0Ywv;*m;iwQ zz(5WD3(H>wOeXh3}TZe-i{tnU`E|8 za-ocOTVJ51$rosQD?nuyUD-KqDn1kR;Fy>d%v?5VicD`VD!m^tdUM49TeBT#TjTnA z&NBr|4$yT_lHR6PXPXB!zQv6NE{&G=If&EoO;H5@04eRf0opaAEF5=0x$5hIT;7UD z)|=-Ucg;$Jsu}p%f0lK|=w*ap;mf?t-#hcdScu3O>nzSX^R47V0T=)vMV$+x_hZ3A zRKNfW)18i{5zX(7DFDKoerjWR_BW1IRysg=C2R5TIpcsceVGH4x9&^`UiOR2prfijro%Q_jW{?*ly!EWtd3*Wb zOk?q1k&M>OXOZCq+~4aGYdc&t;xEZNSr~kG)BE5-slS8x-}T6eLOS2|JUuzP;Eyh` zoHP*YJO0ix)MMM#OnII#>l_ScwJ|cLfbo82IE_Vv#-Du=fAfJHiaIw^B{P|$`lkbI ziqr;X!GAmW*}|0;2oqRw;l4|gzA!;GL0WfyFV^$IAZ+SbO-D?9!2J1X;SHNUc z`yjT%H5~!y>~iZ@izI=@%TF^htnD$pCi3onG`YTU9}fBRKX~)CuDnQJDZWa_b zJhr^@QuXN1*8~g8E3#^{pUGf&`uD#b4D#KJ`ai>nuc3J zl2aKGlNrBx;3;I7_D+uf0N)T;r0>Jr{byH@^C|+&_+TK4pT|PQBwDV(Ti9Gct;xW_ zp_;@}#kR%YTw=p$w+1L}*`vNY5gF2J7Xg3IjPntVK^qW$Omsy*d@>9k&9_Nhc0Fh6+1{;Yq26z7eYdDOc zy*Nz#t-$EpIN}xkU)ljMzp$yxsZJ`M(q?=sxB*tv1Cs=ECVQCXTUk|+_zCrg=fFfU2($2*5L(^O77@%R z{vfXsp4{-l6vErr^CFDtGTOaB#}l;DMtYIXl$ucgB%qAJpwP>lADPP|CY4H%AJM4&@NyfkdOYEB_-pSj43JM_iPo@O zOP%o}zjjCU__rE32obu?eCD~wMrLL?T!M=$>UwTMQ^Tvt-IItj}In9=>Gs( zFUuY0#{{{#pjw!;$A~NRJJ%Ng1BV&O zx*D@HP2AuE!;>B(si!yB=Y|Ob4&9i|zQ5xsE>sd2^rQ@{-;NnYC6yIan0*q5zkC5G zq70<&NrFi{cshL%QU%Xb7HrHq6x9t1Af5?iOrM`U-UuiJVVtjqW*zj-Ft9Y4TqtH? zbjQrih|7jfnS(fTz?$~q2I&X9tQ|tZ{{YS}VZ4Ap7P@DivG0aI4~#j^KRt0!S2SSt zF!=d5H^@d}VN`0S0y0Wu$Y51PjL3`n>y%1Jj12?>Oa4Z03WCB3uY~-#UBd2Oot1&q1;Um zgbl-JGC8}My1Y;Zu{CMQoK4&x7b7G+70Fx_663bdz9Uu&6>?(}T`c(O&Mau$sw6;t z13sN{1S*Av2V>Y5q^VF!E0L7TR`MZ)Ey;7$3|C!sz<5h? zWUhOtxSdhY5l3wpqprsq#vgm-L0W+P7{MkIGar0;LAO^}>v<19@|YScB!Ryf7Y}b+ zc!LEIN3i4(D45!Gk0~6PDU<`y%pJHl$I7mk1&BjQE=-auK)`e|WH~KEeJol=;eOj9NQ0^{(#`Pd2V=d~Xi?u5rXcu2?)8)cWz?SBN55#!-O)$++0W$DSgQkQ7*; zdUY;obPIr~NEab9*e&i?c9({U=!Ba|uYr?`vO~r1wd%d#&)w35Y`Dwe)+e9V5DaHh zf@xz2T7EvcCCVI@l;I3Z3#RLUL`EF+xC!nb!OXy{hiOaZU~k8s_;*YuU9^19e;#*` z2jQ5Monv1;`r({QW<8&e``&m&#&39@K6mGEW_T1B`K-f9j7U#kBt}Wt&lDua%nv z<-pZ7*4?$LEPKB*91Lj+c*&mW>PmdU6tH$p{&hV2ldxm5rZW@GHdt$f2D+|_Iy|mF z_dGJq*z9!q44-+uslsT}Q-~=YtS>u4WxGWBdBVA(n1Tx(tJ3zuy*mWA>xz zf5dgdh+0RvG=JVPM+O1m70Y`7RG6kOMe_PRYjcAI2=o|P3?DNeL&vKiOjx+H z&sFO-?}QweBw{7X)ekNY)5P#-Or+e&lOI^?TowsoNDA*bnge=%P9qed1v|yeZI7I3 z>x&fPW?&@FvF{=C%6%v2F~+g}xD_Z+%*tWUX0`cq!Fha@dN0j%Upw@UeN)MCzdsb; z3d5+4lxKc?o3ngm945K^73)_VNs zuZ|{C!yrdy{A)O#Gs%!3tq8d>kjZkrop8vZ4cIbSVBuT~m>gx>F0W~|t=^AOOTiM4 zS&p&1;m&4`3c1!vuwuXKeer^&u(&DSOgi_DG%bKk$9Bs;kaK-tAfYj!od9Bnjc5#< zK<~XxMdjUy%v6Sn#somq)iy*j6`AZ)9F>}NvCTWTn5i*s%kA=dPD2g`W zGJ9{fq|N1~L2!>PNHfk4^U4(*l~^3GFhfK=`DC!jHWM8&i;rDSo?;4u!y?QonoJ+t z5rk>qq{@c7)PD~QiXz0twIvRq<6M9Ulzm0&+S;o+NVlGmtmo1f(Xg z{{S~1#6|?fSpsF4vwe1VimD*eo^uh0^WHg;)n5i!;%?rvzl7|nKnN_*&$VG-W5_i6Dl~D?Q>#>HOqEBSnD} za>+5N-%Z^OQe4r)NYNx{!VTmwy*BBHq{0k~oi*W=I?1QVWX0ESjTeP6s$Er7QyvLC zW*h;H$r6kvMwQrM9b+??Q(!Bd<;w?)vSBpMZ3?EF0F}+~7}qjH6qBP8 z_B!d|*E`FA2sGHDnDIlcFBJv_V;2L9jAu1Iv%o6DNLyshhVmK4df>#sDvFW@Oh%h8 zLC&>iV6O8qlsBp0RUnp&3`aUOY+T-_6{BjR3WK1)U5K%KaVhJ-bRniRQG!&#;i-a( z1`jzZ=kM}zlpBH5llwKEx14hXAkMN+SpCwUGlX!4STAln=norauQtOY(f6+eep#F#E+=sZ|m}I~%R!4uQrx`#N1A#pDN#VPkEn@*U>I3S&pHb#h z@^gWGciD3JaB^rrHWp-657$_noZ8n$K7U?ydUSe=@5tih4Mj;=i)K0CA=+}yi>Au{{|F8UOgAd1OD zaP&-PKpBTJ3hsXUoqNkM^T3Z7vFfPx>#4uaPk}8%8^mvD`_S)-PLe|4|BGS;!pvs zFwJF5<8J%ppvs*+3bJ>8ap9ImK!!tDDr-0a&bSc5t87~E)XpOvzBur6GdF_+@D)=` z+~FC33Y)fQaEapUt_rBFT1QerR9|_0^}%3L=fYL9EhulZd=&-2WQ+Ms%>MxA1}lP@ zN7~Xm_4TeO*wo$)v?rOI{qhNu7(zulh67BU@R&EXOn@CatzG9Gtd|3lxTed{=jYLQ z;6V)+BD?N*%s8--hY;=Bn=)s!V&NI2Lkx+le&OQ`ha4;r64MqC#b{yp;sO~+2qhg& z51W6LX-uBQI)?OX91A5<<`8hv%=*vd;=pjKW`UJN6;PKqlpEtHLYdOi#90Tds)a!p zuF9AlEiyaD3tD1;A|!|vBIDxncmhBnI~<3JR@b_KDt5FxqIl&rJZBO)LEn z$G=+ULriWy{vP!Y*EfWNAS>2BW<71o#^NG_+|F~0JZJjicHu18(ZjD-{c$rO2duJV z6ebK0Z+Vm5d>hW2>jCk;00!;J3yzyJeth0J6C*g;A|`0!W0_zqL=|0IiQ^ml=8D3y({E=g$CMDU2eOk!CRB>y^O3&2CqO1qZe}>bm6^#L3$<^-gRe9gb`uyT3_fpT=44<-8r+)< zjt#l*P~w`YEjJt3fjzzE-cZ(%84+}F59_B-0n(5*nShs3?-!V5voxz6Tz)Y>kRqX2 z%Zy0AyASnD4}B3j?ato1*AUmoa~E^&f5!r*(Z<<^=%%N6&~lb%5SZBPrdJ((V(>=y zO&D>9W>+ECFdV8G0$^pwSFHSRg5-T@s(CI*&hvU_Fan#q&(ZVwyc!ffiBHE{&JUxC zGEi8Ei=hbELg~?misL~FS3pR8?H3z(kZ9FWB-z*}ji-!=0Z3@<#y}LkWFs(e4n+tj z6oRQT-o16is>VAZdQ28hww>5GN*N#YkI8>rv`zL(ghnj`PlMlHC(;H{vohZ=tDZWK zxF}8HPy0ghg#&Eht_+%ia&5ivK@f{(3>#HWgISl^!Z~m77a9e}yuXeaO&8SgJGU|O zu2W(GhBCO9&Jp|^d|c-NH}a;wy>Rb5Crw|M#y=S14cE~;KOaNm-xN9&Oo}sgVgCRH z;9@v~+{3058~*?tWk69~<0cJz^{43yg2Y>Td(-FCn&DV-T@?ozU)nyeGF_N0x5F)KRcN{xjI0W;8f^F4ABgu(%$87?hqOO%|jAxhMdJc<13zA^|Q zNo$P;s(gPN;V6nAQsI*J3|C?CS+xTy#|HM?eigDjvnY~fNu=mdt}Mnez{I256sk=l z)|_XB0kRQkdh@TW`OhWxg&|$fKpOVfJ3=7OEEY%z!mg3Wxx)aUHO@rSO|HyzvT=dz zOb#mQ{{WM#PM#qS?Tg}KldrQp72|u(XGIK#t}%7WtQ`OV-Hn?Bx^Xz>AkYNPyXx=7 zA=(QJDTw8645Yiw@W+g~X55FJT$FAOym3X$WlJ%#8n$K2^$~Rd;~;A3W;KN~hk_M2 zq*f!S4S%!S2o**ZF-1-zHfVfu;c(DCSdU#p-aNq+5`rtUS;mNybdiEuf)N!%qNIV4 zDVh>6Y5;{=?wP&!)8l|9W$e>HD3D8I;pLy0ku$TlPU-nOpc$4*DCtvXH-mSfs3BE} zN}?Ky442`>#VI0qje@FNoimC7Y!;lG&67vj1}12hB;GM@SAz*~#-ZHrCtWOC zCdU34*R;92e;Cgi02wkk_`#_A`sh;#$la}3eWp8^C2kg#bB$RcZ@0*1`{A&2miKI~ zCyo8Xj9M#$M%%PcUUSyc*c8ZUfllxRH6^(&@G~8 z4f$@f)}UP^+(dGCMd@@RFnB>&CR9u2xxQyHNHJ1@K*SZ1B=BPJj@L{mEa_PMxW_Sw z+yxcB1%PuE7?Z9f&DRW!0|uTjXIq^u#Kg9g&e8|N^Nn(~D%pU+h8q=;aCkMru8^P| zYrpXD0E<9$zoaF{UB@p~%zwue4cv#`G3)ih)-*aDFIoQpev&*EGrt1CKjHrX-Uwm7 zp0MFFySb0PXkX3~UNQM8^TMRSYOi`J`SmI<5*;VkWVirJ2%sz41$w??>aqobUCXFx1Kv-(3n#{OjKVf<|XKX`p>MS?hooLPdq0 zffG6M_sa~XNHdH=pANCG;02XyaT)P+Qq%Fmir-QEu3~)p9ANnoQOf@S3ys6x@nRep zhNHE_-tqEzQxO*F=<;UN4ve-sRi8hUZqGjZ#?pW&BqhNzFNDL=`^P0o+g$3*=6Ulx za|5-Y7}v_j^{+faf|fW8y762u#D19qg)puhQBZKhMSd?7RAe>KP2~Cfl4^>XHLBo^l>JiSh)zhZHZ#MY|5dZr|P_-aDz z#>q85Z%@xEWfaN_8y$!M!VC@s<1NC9!{K$GM~+j1Az(XenSfB_z(Ba;{xH6jRc zahyTMk0aa}8yhsGj*?c%y%A06?DdF{{U&h0lC4AYvSL*;4<^wW`_Q)Kcxef+Lk8PNPU<2|fkq;%IZ`s?|w_|}Bazk8z(pUIw45C#dgE!5YfdU%A9 z4ITTwK5_x;iAzC9OzEE)zu@J{GM+BKoH&X5Dnbf`BE!1Ju%m$O*`g7T zc`kD%b{qkTgE_hKnbYScKDe+d0ioW&K1?O|zzU{S4dMt@!IMGU%{dMl+Qh~k#~KW% zyX1<2g%br3pvZJ?u_r^k^j|Gv@l-%nEc$ttJkj92`VIjXqs+k-R zs36bL8SiX;Vnn+wp@R(X&3?`<90{1En^r06S3QJbv*#Ij+1mMx zNW%*Yl+G*JH5_ycF}8ao3_2v_&|_4Dy-yZ6&K|fy6iSe#-P@n2QJjGsE+4}p++}9dZMmlxKgwvmdNwB~lThiepKDcF{g39V>F|VdRU402syO84Q%xR_NF3 zH`7FfR0aWDZcCX)buM^I2(znWgaJn6Lo^AZkQ&f$-Z2vr$Tyk5$Y^opSQ137qu(L4 zxC(fH3+B*W+r&TyMTD`2-Hja*F+@jXR=aTA9d6RWrv8m>AO67_cG}6b_q! zrK#k{0x47gNQlhTCD6cnT06F72S{{T%> zCMBjCWzUr_T%D_kV9B2XdKve=1(ZNk3SUBX*KGS*1*4X81roA)Va|9hM9>*}^)d08 zeP;Y9_@Of?lP;g!yryhg*+7}0OeV8ihmoR_9mtuGJ274a#vw4XLLsu*GG_-E<~l%R z$)q0Gu4rSDsWw2$AUSpA@cGXz6@^u(P0}DZsJ)10!qGutkh7vPjguYa;);MrEFOM) zDkwcxFyyyX2IRmgl4le zG5nXtbNk~cm(c-3{{TPb;;I^E!gY|+^|>c+D|`6#?1%l)F9I3pX!vtj`aU?Tl@O2^ zW`2I8)Z_ifqS0nyusIGG4H z{?90)7(Mmh;VIX*iD;pQtLqfnpW~1aP`OdxNi6{S@vbTghuc%Q=5)R5#WtOY3#@zx z{?`*t!3KpROz+Q%dQ!x#hQym5hrG7qM+)CL#M7T1vwO>qW{AvK8~%@7_v{U_U0Cgo z%y0QYuL6ZW(tBAUe(q~IC%8KeldL#wH~BcV;zhY10Y4Rr!&92Ybxcg=HiP41qhg>T zKwG4R5Lq(YF_fyvQ!81eY!jtOw>e%BG;TA9*oJoB#GF9WI8l~)hreIn5H(L>b7IFc zH9BrNoGerkr?EPB)?X8uDIx-H`*bUHdg@*QLeL0%OI$ca%->S-icA1ck%95PwC3`v z6DhAIeK0id0b_WS1}QO?o6E5Eap#VlCReRUnW1c&bw zKNv9=t^(0RZ&u=G5dHmd7E~_7tb+Z7{N{5ibV?WnRM&~zPdr(Vpa5;e*uuDeI_glQ z32#}0Gk+QDm}Q1q2#suUeK7AlLVFn}MC(6Ux6XuwCwXbDnbh<3gB+yR^vy9`&hW$X zaM`bIONX$yH(%#msey~QOW9S+jImwbLiASEb)tccoy~OfGUS7tQ@1FViBRu$=Rk`AJgf)SB*%gC#4A991fFfL>juva7+RaVWZVj#waVd_ zGXy(SGHcwoI4>4xnyMJDk0uXXEJ8(fjD>}{rvCtZ2SFx*tYCcJ=gq~04a9Jq?0SRybHby3SbaT{vq^E&m3+|ISd zIVk#3kU@v}UssuR8rXB2(DAR2d_wpz5*|;oKZ}iu#c!lzQ?D5O&meNBb264R$%7Ap zG1oF=8XR}MQ|Hf|P8ky*P+gZ&x$)~d0~_Ij&$QTZ+5swpK(dcxF*CP>{wkWg1-5_BY+zA#@rDJZ}sf_Y8- zZR!w4p+mULA>F(4DZ&m`3hs6}e;D^VLY0W7r&RoGV+r3Ra)Frzt*m8K*@4eb0V}bG zMN?V+v91yeic@INcRcasv%EaD>+F@+7`c2l`NQVi&Ca-nU|KdC7YFl(*m27u+~2t3 zYvb1%pj}|gzXX5Zo&dxFl&ilV`PZ4kAc+KWH_?mtzR=GZDrjb!E7JVa6Qvq81dJo% z#3`K}OgtV|(ZdjgbB>I5W0b%$BNGVdTrMju6OA$)F{(C8J>m17M{^(;0G$#$e3~$E z=T1nTG}2s8UU&!r*ob#K6HFuC-fW>14Bm9lzi-ul6_njo7_iQaHQ_Y?0}6`DEw?CB z#$g_Y6h#!57ZwfgMtD@rU}q;(Q7*E4V~a=vVKTd;BiYxb_&rtOfA=*6zM>qM8LoZE^+#DB&b24f<32a z=x7T#f!diLLHl~I$?u2-WSA~GuWWy;TgWR0s)w=z*TO?uaDkxUTq;aRfxMe?qadqf z&D!><((4O|#1@dIfo94kDG8k|90?#k?0I=f-uXt$W~tz7fnMMv#^+wS$Odj@!&A zy!YcU^TUlIq)db+mpd8=88SeCcoL@MOEp_;BB*0gg~S1+RkL{^dQKp6P`2r_$Dws= zIi{c{%nX`~v%KVhlN3azBVe1uS2cJo;A1xyh+AR2{{RKBR1KO@ru8eI65-_tP9UHo zl?h0l(EH>CY;3fS&s4|x;s&B1gpQHKbA*vMo+|E}kcIgpK1bfT*#y251~GB_&t41& z;}4L+<{vuNxRj22U*N+0m^@BX=xjw-%-7G|E>i%sx2-?-<1>5#mnM{2V3zgKz#&r5 z-1~B4zW)H8Xy*eCt3z%fh0XEA;+~%mUX!7^>CYk&4Oe2hxf8R~ez=X5iyYrM+zy83 zQ#=DFSv7app_6~UQasR^I>*`Lap~aQI|f(mw>^FN;3e_5rhChbJ_B=vPSDWEP|j@- z@#j~H%T$gxo%%vLjF~tHoB|t4P2(`eUuO#h}PbfHMY(?l~5O^DwISm##>={k=7Pi_N}M})&Br5KrAj- zq8Hg|S7Vc%3RJRzoik9z*c#y?I?(_antHS9{5*L#H<3M*%Wj)5o+F4AO`etB0OAF? zQ7&WteBQdpAeKcpW^}|1>iM|WIu3nV^?zrdcbYZX9GQKDwtY?kLqKa}7MZ`tOG(cQ zNEt;g;18~kp3xBkyDg!nVJbadEF{Rl0D2teOCd((#}ZT35xL%vAsxH#6VD_7L1-zS z-(L@o`3Qos-ZV07(3r~)4=8IvOaUfgKrz;hauc)!=nQGDAeR-JQP30+6s1xw{YhAy zsLUTUN87S$V=sE;2NeOyoAwy(*gQlkn-CJxbO&PO9<#w|P#Kv4!?9+iaQC)G2o_j! zAoe@=>T+OVl>rjieSoB@)>Sq%D!wO!E);mzZ!s`nP(byZ`sB_Irtyk)v(?V;5&#&; zWm7$Bnw(83tpl#u*SY)efD$ccK`uviE=Pl_#YzE`Fs>fFF}l2;1(ATmz4!a_-8lJ@oUIHfj&T_tJOy1Da?O6*!^%b%YeS3IVZq~3jD%;{eJF2)u>QH z^krN-na2T4Ca4I9V#|>8Ut@t}FSD|2I-C09w*s_KBz7nR14ejQ5CH%lCy~hh#Nt`1 zj>%MN<;T5F+rmAdm|nXK>lWuCal~AcB*N5YVexl!$f8=B4Z|xgJ&B2}aV~{21QeN? zJJs`Uc?B?0;Z!C(UmaW=0Kr_DUcA!`%^AmM5aKwQK%ongxU9M?z$T;7u*iQmZ{+4W z0cnqhZ7uD5VrGm%qya#sW|Zx`E;%-tAS>k2$%gyh{JcbV3H zACpr1DGInbTh{<%AKNE>*M}-O7;R%D7dp7>%6m& zty~)jeD6vAP4e7=fg=aozqonwa2m!aGc0feHUN7f{MM60-rhK#ZI6TK8 zT=ku)hp&DA05gbD1tJFQFJ61=>yX3pTBO|@ojmZYN&+Xd-gA8S^F%IynmUyd7~7tfQ}S%KtQ>JDP^1hlo;v^vtTmCF!y+8fokNK zxg(}FV=KuFN0`)Ow)Zm3_ss-VYG?$wBw`qPdgF`{v@wmL-Mpe?E0iM)W$eOV z9D~f(%!~E%xqi{M{gE^iX&`@_#8245*Q(qDxIRh8q)C?}vv`>rW32n+HMvZ_7-Si^ zZcjYGlmfDY4oJlu13vF0o=(3l&V7CLl2(c)B0aC2_D43?jiOZP3ob>HYg6wW1TR2_ zSEmQPbkgxktc8IrK=>l$g8=1K5GXXL1Q}w)J&q1E0?x(-cTDv%+G~LXA2Kba^R^pf zEze3KmX%C&ZOPOpd%TmtMF6u7 zzyz2h2*=?CMGZ-HM9JQLAHXj-KOh$Yu$I?IJXLnN_{%~BH zbax0*2r$pTH?DPephR8uqwC)Ul4by;6W?@y)!^vM3~ywf-!Q=i;dd}26KsQYz}Mb* z3OwXsqiI207;ncJoB{GKT#`>&I3SI3OshS)W|T~`suq`y(Sjl(f++cLp~$R5Xrwr* zN|d7EX9`&jc7UTP%D@Vc*AyoWGif@7I%fPxVdPlQ>_g@;YH#11G8n*QzG~^8^f)N9 zuuS4)J$u>fJO~8Jt#vNw?8DS{cC`*bo8TQWfhF^{vi+hL% zy!VQizb6D%r1@B74F}ww?;NF0_KkiCZWn*ap$kOhR}uZDboaw-=K{EJZe#;rjqrn@ zOj72bJDa%F<&L$8S$cZP+W!DIfeaK><6Cm2h3|iSON6-SiYDy;P~qiE+0bC2S2iGzdyIa9)m{{U+Vr3hgKGR9=`dal}2ngxSXLO(a67Q75HIw7H> z;-IeUI1&kuJ6*LkfX(yf@l2P+$-USmVA{LSEMPY=Q#}m${_(U}B@(bO)snqoYpz$r zP6b$o0RfU4amqWykfSv~!8O^_#6}dP=!SCl=kIvrFdj~o)vo%-6%2#rbJt7WS;J;3#HLN=6%Xh5GYx2cgzgS}XX7pt1p`q2eB0~ej3fmGA(lI} zgI5{+aUxJ*i-&3D4ajdhUNsB_A(ZrXdH64UBeC>M*Zw^6yGDD|^Zt2Aj%<2G%=r8D zHG%<&+-{zZWCutSYAuic*FA7l7-(vF z1@A4*JX4e=^yT@_@89#yl~~a5{C{%^-g!_)6@VsYj8I4FdE#dkI$q{;ly%cTT&9HX zbh!-guQL^GQoZy7?=$edI`n-oD-&b)kgpI8)zLkzRyR$r0X!EwN7tqCZuEFIl9rWl=> z5iCH@@EEFc5FjKNM_wa$(0p=bSnivjltuj8=jfk3;_XWkVAx^ zy2k(jtPD=O8Ei5fuq(=5u9~y969#4PJI!1rrp2m8Eh0G{{2UN~Tf-|^lNTH53CtW4 znJO83M?Y=qPE=AUm@%^DX+NADZ~;+FWFR{WDg&yn9P&nsF49oJawnh0IKhCxhL}Wc zmTv*yT(pW5A{En&>ndF{fl|UyRfj%|?4KisJn=>-X{{RHx#T+FxE^ovurgi8l zGI=>fXS<5NpPmiXq(rGuFKM2>G0U3H!7$@?{yz>Jn1YSLDCgkvhx=JBAOVb%8LrQd zkm4+?JFQRx{{UJ)2P%w4HqQf%{yK9f27(Jns;Gs+BX`-43n0UXUgL$draIBf2S+3$ z*0Zml;_>Ykn?na)fMDJH9Oya~7BUNltAX?NJ_syfSD{OkS&uqc=~prnB=TCHk4s z)5_ygnE*09h(2(1h|u62h+@DCNvGw$4giG<9bYl@+j8E$kRk>_w5CSauWLHt28o7} z>j2U?TqX5vgb9_Vl|mjV`?bv&B3Ev2m(NohyhIL_*w<$UADr<71#z+~nXh}>`rwH} zF*j+~w9WoB@~{?{DRq18NPG1-nXswU3U2QBZ@UQd&c+m&hAW-j<8#Tuufv*07#QK5 zen%)!4FD)e(gv?dzT0i9ob)T5tVSs>uT_db=AsN??fpN`5|9LTh~v>yZba`7Sru{^ zE>9R4u=~l570UtQPf_1h{A{GfQaK~>Jm)#^M;t*ja1MhR?R)p4*~KZK?u`_iFn_C= zz+f>{6RF;OYkWe5BxOMK=1KMD@G_}pUaJlIJn!dcXwvWsg|a zO({`9E*^$%c-E(Qyv>*)(C4b??D=M9cTt9Lwe^_!&O8gl2+$5F3Z!;iiZ}{;WcGr= zOw%Ph#Md??t%3BzEv(Kl#ARlawlEOu>&!R8glr9ltV|4|SyLuCbVz0wY+^pt{*}ga z7fTs%S%Q*EIeB4=N4Y|U9GFiS@yD4iNMoiyDNJ@?cmhD8GEbDYJS+{kcm<+hyph28 zSb-(`;G>A)=t9Q&Mr-20)XoYum=yXZcY<*qLb?gkn0v(Q?cRi^z~f?hxZN=`U0|>-RCMXHrB8yvN~6U3B&dQj_jJ~zzFC99l^fW&qwz0MC{a&JTZU$+_Js820E~%=Qxje3*AW4aVl2~lhYS9= zs#Xcn-M`|?;$9RoRjRqJ0(3(jbJjSjh>)Nb^*4{3pPcZQ87*|^2vp03qWEdV4Immf zZCdCUm}fVHAR3Y*kp^+EndB}k7O3_-BM<$27qXDsJ~A4|zej3YlL6F5J+tOJ;4Rq7 z>p_;cqi#UBClDGeE=29YI^~)P2N5wcnlang&j28aRs!X^@3#73%4t>`(!Eo(QXe2> zP&~^^ytNbg{BZ&&syQZme9!q8PAKH{Ljq*Q3}fStg*rrgm%fQt=aFTx{rScl@9&Ez zg1{wXs~*3a@_y-epX+gJmh|{Y;#@Vj%Iakvz4xiNH> z+e%LX!h(@1v>#Z;Cj+CIHm!V>9Y>fsL)E@Ahz&KpiAT1!htJcFc*#D+mJSbWI(hQ`2}8CIH|O4w;-32<^@u3=-<}H#sei za*qdch!A`eqOy9d)~5gffCNSXb|2LfG|uB(QyngX2V|iI>7`$ z(+1do=X^_4Q8I=c6-Gd}TxG&R=HU#_Gp1new1*JqB?t*=g}3T^ka)0#U|yH=EZ__R zg$ptu&4}C{xH5o(Jh!10U(fP}Kw2xAl^{6t-;#vKK0!nsf8MdhKx_~Ujlu%p&wOP= zSOI{PpvH28B00q4C@f`c*>?VY=5b>u%V=9Q@t+=e3-lG&_2Hg;@jytYTiyh5F*`i= zDX=4DLSjcJy-df70MOVPz69?giMdO|gVMXEApK_jY2>K_h(Y5SZe~sV%p4f1qEjrb zy2dew&Ae8C<}^xK*u^cw^6}D*DvSt#GpxC0vw08^*brcHnGf~b7e)r4GRJ!C@APwE zXh~?76RffNFUSCP>2iHex8Ip&I3+nP^NCax@jn~9G6cB}RqPDho2GdzsK#vrA-w?l zd9MPoj<5*aWadX_-qV)@Y-_)MUxVf3gVmG&~cb;2^`>dF~VXe0|c!C32EX110~+L9HWH9R4x&X zpXVG;p^PLxKrRB}oS1SVTT@rEVakO&D+J*Xl%ZiO8U;Z6U#Q2yFW33~Yc}u!3xg&e zJ`WvT??F%%Q1G`ZT8<{oc;I#p0J~9HU!28f0#R95H++V*ta&(Etin4zf5%(~82-=P zOmE*F%*R{VF)$_X`{LtbyGlZ5^Zx)`kS4Thq3fY;`{q_mA-yui&VN7SB5Zu1fov)z z!smE7u!6uEDU)3{vh;X(Ayv+@N5|aP-ZR9=tctf;&}D4S4cEsU(UxmhLHL31g{ffO zn~=}b%hs@vj`Ecea`2cP<&=*anFWPob}R=@2Rhdjj&xj)Kn8n6^Vz}B0}zMI*i_oJ zF>}RIpu@ldyL4Uk{okcBn`FZ2`^$@q)&WE54Z*|jH^&eHkS=j+riJ>aZ{mz*__Pd#{emUnaFL=OZ~aYcq9iBgqhZKb?+Z<6oAPBn_ph8zIbxr zGSz#09{gto`3Xh{MAf(6rXf6Ik`N|iBMb;Lp!458mV5HhyQlKwfC9@i!lc%^g>>rj z0Z98^&Dp7!Zg?2VV22mB{{Ue6;B`%$oqV-ZMkc8!j4@M6 z9{G9#jAF4n4a(=k@Su$$i8h#(D|940lZQ|Q7`#u}z$UHG~ijO9vh zJDb$M@^DF%Hg5-ABWs+m!*;x;K_os%3_t?B6M!H<1u>wk-hoi1r%qPFP$g{40;>D| zL?bvXU=0XDtGrE}E6~!6iS3T_lYZVHLP9j;8Q`iktD@4c8bX586Acf@Y1@pLBN33s zOn}H=dLL>8#6+MqvZ&H4aWR`*l%s%L?M0m!Pji(}*W1m;d68V7{AQ@sS2 zKv5K{1QnJF7p(iBvN{XVXoFo0`s>Gh3W=6NhxOs#!>(ludbkwnje76Oa0FvJdrL-W zd-`7ZLBPdOM|XeYFES~_E0K|ytP)j-Z|?{xezqzk%Aoy@HFdgTHbS7*Y#{{YrpaYQ0R z31J*Amm`_(JP1yTR}%>+Ab9H2fhk*6%z7Vlk-*f_rSn1$W30$?SlI?ymdp z`Qcb+VwVj(%)>u;0e)}Pp=6z#hI7Oa?=>IKTF>Z`nT?9YGA8E2hLSDTRu6)MstcA|aXK*2Q!5c^789c{-_D*JTsX-qeKOBQ&Uh;) zAOv=n?s}cioRmh;8Jt;N-0M5J&n%6Y0>)*Ch5Y)@8;&%|gfKxoNve9D(O zKU^+a(H#57_1(OTq~1@R;@_*;u;O21sxQ}XukgGcYSW+{c{;|fFv>$QTX4Bd>o*^F z9&yJ9Qr%#?Up{*C=b0B>b-X=q&R=^t)-wfiE)q;&4vW`#<4h`MWLw@OMq8thxDJF- zoCR*;`yTi^D$qh{oT%!6&JqwN;R%!s{E?(}kBJOEE2Qoj!k%G_@*u{G+bLab*S|eF zL`~Nl@;{?7xZ{|}hCmA4XIgLA9t~MkN?X*&d+)BYWiml}yJw0I>+!BMUbNdh{{T-2 zj)RbB3_$OBpC^Tg?FpDD#$h*WeUpKp`fx1D zpWgR7%(5|UsC{eB`}}hwZe`7yo%ep!NrRL*MTIjGFz=w#tLKpAD8tg|x7TJlfY*{p z>^jeft1R9qvR%@?=fSSZ*0C!+I>%QJPQRRkqnQGibAaq@-+WG-$0zV=N2v{rv zw3R_=mu&8FL${zoRs>ob3seT>WhL+iwTiW9Oz$ys#oHC83KqsICy<7(C6WRKD)S>1 z5fa>FuPQhJ1{z^wT}xP4xI+`s!>;3PT1rnJj@H`(rb8Eps9Fq{ns}I2s$v7vVk#KMDIQaF8 z+6xxo%psTGUmOyK0!u>+=VK2R+Vi;p9U>VLpc{MWa&u@3giHj_Ti&rg_(e=ssQ?YS z4bJt~CE_jhuxiqijS6if`ny; z$c`w6B6q8^hE59jV)teP^*Nv_t$G|7o$qkJjxvjgRNI)qP{lg>$gN;ovTT9OyU#_= zd8<^(ii-q{dhK?317}TS9Nvd6GH&oLaYHh;#`Im>dEm-2!fvx39>09Z`wPC#*tEcR zgq+Kv+TpB_8ab2pTt)>OGBC3^V^}$!+;X<;OtOUlw9vo|1Dta*t=0mnG6+p1fx@?v zTmzb>HUOUT3A2>N1yvJ1po4G*a2Rf(t*qP1=DzW{#UO(nyWm>3AxGuZDXZ%_0>5Npb`N!AqJ(f!P8V1E&(8Sb5-%yJkwyIk+~4pTfRPje85vC zG}W?oj2?enmD*syQ*Fo0{{Y>JOeRGGL2cNt zXuzk5+rq9Wl~&$PmUbC{@P<3Iui4F!GG|{eDg5YefJxIU%%%BDVfy)c6 zcl_kzkVOlnLVVZrr1X^rB(P6QHCMG=e(G&2J^F|G|`z2hV2Se~CV&l8!w zY1TY{O1N&O9+c{#pN_dj zska$VbIf6UPZ;22M-o-Ag15$vn5GY;!*Dsvd`HIfyTyh`&qAI%t7muvi3oMj0SVBi zHxSk28Ag+=2YB4o{LUycvPgiy>;_MH`OgB_>Okurar}4ViD)f>(Kjc&zdG~8z+}#< z{nH1oZs#2@lgWEG1gMz6gJ9r~e;#+91n{N-JkgGS_lh(LZE)HLnEZLY3b2Tv zjR_1h9A^OQAW&@7J15zGeewu7b{6L|c^x0?f(T`&Lxcd%bFJf;+z_G)?iuer89emc z^3j;Paj0|;^qevcvcjX;OA_NzJL4rKjub zYX%#f02pOzSo+o(Qx{VlLSdb#TO2u_vfew<4i>G+h|2BW@!AlfV*>dEBWj@#2LqYY zD20&d>K`3DF&m0tI8j27^806&h89F6HiXJ+e}`d{uY{Qw0^fJj!V@1MGP*$5#vdm! z*J%k$;_0XEZxCF0>;*JW8Pj~?uLTed~)FZ z<0%Oh<$zcjAv1V9=Qp{NJh(ChDWtopr28`_oIy@f6gL0^T3V4PVv@b_vaqA*iiwd zgI(L_{wqMuHr6e!;c_U7*wKK!>uH81Hq*fZ7hqVcAzVaMlb_b#!!pa)Sa97*DN%{ zu$A0D==pi?DX*2+B*cPyabKv*>+gi^>V=;FCBITBQ$zYS&$ zoSZ<00uF)T??6Lm-v=&rN7udl{yoO450_wU!Snui!oURu$dNR|ZzI2DW6#yuag%Jxa_mI5WfiZ#xI}I+61qAM-cdo=7J+WGT`sKf& zg~U5EHvK@y0|E{3wx1zw?DwZ81zY$NU1J4sz2}H$)bYIFC;NM^C}VM?m90ecZ}YS^p;wX~}*@Ckk(tJkky%11L1Vp2j z27BJ|#5f;y2@! zig@*WUn{yxap4Y`9DtE>c&6$7>0M=I7E3&4llWR*AOWmvoNdp)KJnv%RhbwyuT3-4 zb(_9GCTPpned9y^IN_B;w&yseoNNyM=v1MtqlmdNGq(7{!=r|T0E3)Zgq>f$9GQZA zo1!_))h|h&D-fGe8#7fvKCUyw293vtG$9!G+g+o?#F)hOhwt&<0Rt1MzR8b|Il^#g z(&4cVF0+O4NhlL9*;6h+X!HVPOC!K4zb%JxUxX0XC4y$ zx;=xcE__Ge&qKdYcLm7pFfGHpIH()yIH^|-t4`3t|44P9D_eVs^BV72x zhHgIq?>E;s3NXg(VWNwt*W-==dwcAO7k>W$&j6Mv8@+&}k-fGXKd=W6w#4ELM)-C{wwGl+fqKlxZ?~WOvbb$rYhR)ob zw?pLz3}Y-$MU+qJS4#vTD~)v$=gZ$h0p&T!0;3=ro}MK(_y%KpJw8`5JVj8WDmr=x zex9?(MkJzCDY-NO4SxZFL7|JGu*BD9xhRH&>GjqWdX;g-8Ldw7o%FvCx4fA^j6}_X zOS8$&{xYPbw*Zj(v--}sQW}O%gR?+~oFe{Era>Ht&fHG%{{T)V&pV|x+azZ}CQa~Q z1&lx-G8&$G&))dnBWsMbK-{ee_xA^WeH8~35@jjjCc7~AmDXXECjI|JeT#i%0*Z$;5J3HP72Untb(ZckI zlVT%y?;iE84Ytd$F3YK_G2R0_+n6*#Zr+{8dOsWq1qh61X`ru6V+#tY5u~ijXIOhI z%ySV~M=Y93IhE^PCtP7=Q1-t;2;X1609V)OA@!d=WvY~RY5u>?{{X52%HR4={rTjI z5ymcpczR-QTB;=?sI7sjck&Hvbw=%FKT+w_m zTYX<`d2t6gX{0lS&t7};vsGKAW4-8L(G$UV7Phl2(KVEDy!p>=bxV?C9>5u?h3l;# zhQx$n740z7vdQxZBhnRvGxlR7&`dW0XMPK&(RD6=k8`jQf^3&mI7H%R~)yZhYd-EBNH;| z^NumnNR;aConE|fqd**$xt0viUtPQ`Nd++$E{)G0iPtL`(R$Q8Z_L5^5W^yF27!*v z-TdnS(=!5#ZQjCfC$k*S!`qYsg|k19x;SRm>=Iq3^PHf690H)EbI>8xHzU^iI49U- z%66S=VqHtbhY^_rVd(Y08=`S00vf8<3Mx{NGZCy>Fe24$T0#PgxIXd-6&fH&RZSsg z5S?_KRfCkw(8DR-eS7(#ne51+hH1XOO!4SqIUs>YRlhfrTF4zew*Zo61;>;SpkgnP zzz}wQn0L()F=!x?4@Q{AdXE4g13)BP^?`Mjt;eSrR}8v1D9^>iHN(MBqI5Y4LHTbH z2T7ET&+7c&9f~apaLgLQrhns!Mi9cuNByto$1{^zM-O@0@9TX|0R!SJ{`$G=`#5w0 z8HW0-@>|v>bApR98!a+#AMf|TCQ-+6cjO}XKbMH8_K&7}{KrM zTRb!d_3b}T5-r)sZJT_2UD?F|K7uvWJMsQI;82R!SG}9@uQ%Q}K|8wwR71tl>*>h& zFg^|=emc*e99pAFE7;g3-{W(PM_o^l8U}Celea7 z$hej80A9@Rm=I9|A~)Sb-czk>l%9f87${_TXU2Hxw}X&LbH|^LbBa-v^lqY;UE#&Y zjx7oKC==&q_VC*2GTdB640!H+V~9oy0|{R8<5&!J-vuxvwI&|}@r~y?xdCMiV|v@3 z-=CbvlDU};+XUaK=f}D!canT-`qz#KJK32GoxR-r@9G~f+0@+1{QXmi6b(whPF0yT z{yRppt>K!T{{Y`xhHB^Bn1T8K0GExxfkt_l(GmVn$!yWujR0~& zS-hhBV!45eZxq%rwK2$Ts_EIf{r>>jxs#rfcCcUZ_czN`S|?dOk9b^3@bou`0Ion$ zzcMZtF_xebr)R!Y7=jX(XV5)k>C1CcYDc%p5x*Goc+@K>oxQClcaEL$Ttk4OFjX^A z1amZc=1`+dK~KzU!{g$?oVvwiHrkg>ZaAZQM>luB;n(v)GYC3XPllpz&hHgn$&F0+ zXo*oyQIrO5$GRE1HZtfts1@6R(Y%+9aWU3X*h1UXG z11NIN0XN_0tE92hIv+>RE zn4ia8`ZI~Q&iR6Be^^$AbBxoGEpT}|56Wjb$F3(u1cN7UhJCv=-xin+cIvC+Gvu0K z#b{C6Q@OP721`EpkVr;WKcY8OQs)252xxYTOupbD29hc-Y|S8-%zRd~6exkqCT{lDclG(U*%I z7Ki9ni?wFTXDB!z7c>k7!?L|od*TQNCu(4UaJiNE9P;xAVI~H#ocdi}DhN`V053q~ zpY}Kw>r)O0>f*Q-=J9dEG6^*NGdkc!Qy61?eSG`R9RT#%A1-p=EWbP)nlT5ysoQmN zIfn%!48ToQ#BgWN&jP0IZ@1z(`Fe6@##S^ofcxywu>8mJT(Di~*GGvkDY6l)b%Wg>@+_~po! znK^LaV*vG!@sj0LqUQH-^?wRBa0LajH#Kyb&#Y;h;Hp<+hZ*ZXJ(=r`6bhz<57@^1 zo8rS+fY;yGvEFZ*DUm#iVGpvef|T9AzInrj2lViw-~%8EUIG#K7BX&>xN5Xdk3ziOZXF5<)Ye# zwY}zg{{XAXFOzJ<-dN5Z;c=VKlMPQVx~wyss0SJl0FaAJB}2)N4~|3>UgZN-p!VkV zjtPS{eq1-L{xjo(e(G6oJ#>N?f?$1J#|Yk>2+j%X9Ru>&9}igfgK7}!;DgW?B6S(igt@c z!lCD@?}=2Z+BHHV;9s9h<--6Y9UAvc?r!G>PM9gO4~Jc9`_GQKq>QFWqvBexuH^5U zH;5_=_}2dbI5d!4oIL|Kxjux$$6Oq%69I4M1&e$0nAZuUIv}4;8;Mchl!F7s%h5HQ zQ!&<#3dpLO7&F~sNcCgGAlMi#OH|06yKA$86bv$AF{3pu3Fw!YhUSDz*N^W-&N!8# z>SuUxlir9K^e02hqGwz2y-(q%aJ1jE{?E@AgnCF=Xfaq}{q`}6BR6#5T|N1HnYbyzQLdr|?T!LXfO5Ffn@-< zI4X-=cVnjmd_o^LjFucqG&%v2cZZD>nJgKN4o%7~8B7aAF|OI6LwnY7U1NOBMzatm z-w%hct`xZQLl` zzG>q9^~VAfu7g&%E_2h~v8NFfsJ%pP9plf>8iBy*4K{0CtBP;W1lBfGbXp!rjdW*O znO8VKV0uKxZt*sggreAu3z_E|&7X5zMQuy)lb}9vao0N0A~@DD8wmR0YpSwpE;Db} z#o(smE;HV4VwunE>6yzTcK4qPpJqKXga!e^$5!m`_pSkQCVB;G`qY;kM5EK#?$w_X zes2a9NJgFq)Va&M`KFE#o(p%MelJtU6d+4pv70^k@$=1-051F#qb`r@hZ3!(RPC58 zGnes>26hsU>A23>{`e8oPE46wgRc6Y92dEmG&{y``n~Zq-7|%G-EW`Cb)axJ-JQQYs0tNoWL3+gMor^<3IQRT(0MR_ zXqOn{I^I5Uyiduqt-(BsF$RsDr{f{phn2sBGZJQdI{1v76)L`|639EwJ!eKGG8j_} zr>2?uQ7ManZ~kx)^oMy9If4(Kzg%*zBr&le zoc_J_4l@o{BFTcS?;5ddzHKm(39yYu8!3WP!$|H{RhP!S|aG+U~q|~K5 zb3AVx9Dt4rCB!-G@tk>_L;|D*aABU~3YuBj$Vl4@w|ni;#y&KFI^Pa_V>5`oK+AJ zquoF2jZcmwp7IkTpiACN=^ij1M3`@Cq$W(xTK8Y`!3u^cg9|HEo2%Kg95pkDY6)o%K`%s{TL}Ao zK56iM&Q=w^zdMBg0Edt{$ndv+k6(j=r7RFqfQ^}P-uE%C05$j~k-!g=CWpT~VlWs` zin!7zTIX9V!NsePpAh#BCX)p24$L=&(cgS(SpjTo)IrT0k>SXYVVQf$f_=I9;WMhk zFkqQ{2Zy@yB9UNSKff94T`9qoJJ&(L;n#o16k^o1GY;|T?*|Q^C^BHge*XXudE&@> zWORSs`1rX4hr$oHX8dF4PZ3BGWo541d}CMZfUrbaF^hnI9(RMo5-pf;n+FB6CVTzh znjjq01n9Z{0I9%4cb{M5#ro?UR=L8YaX~tI&EF8HU9M1aAM_pa4wMMzAffZ_TaP3j zK`RCfz{mLaF9TNM1X$_MD$C-lsXQiAG^b(#xz6-GF+a?gz5@fPW;H1{ZVt8)`ASAZ}#XPUeJGtHwtO}{6Lq2Msnc>t5 z#Q^kr$&)Ly{I0-;XL34mPNlj0qNS;BbkG10Uk{9Os#HP&+4;Kp@!v93L!b*|qiol% zCoH1(hG)V0nq6KCEFHQm#K3#@L|nYc_6x6@KN$D#nHlhqHn`Sjzxg@xc%pyCw(*0TfDp9K$L=?-&Njmoq3D#Sy!#_K4h-~&049Y9 z?`gL}#x=^(a(P_0)(mBb1go?>l|S_d{k&{tGXUAYwtTvHk~>_0U^w;Om_6POh736O z@z=&*W5kVFAQCOw-1*eK_roiR6lH{`dklZ?P@O*JZHI19z1o^kd zZr(U%su+GpGk&-D;1Evo01X><>8_pYjh1F*ToGL%1w5#&xBz8vAxPDgBQt(;y%1$9 zBkDB@kn6n3wiND}3#UWSU&-NlbYTHsybCK7aZa*uvPD&%LA;xtSQyA0vKb8*H`6Jf zG(3kBoC>UQhME>(iI*41sTMgbPSY-YTZ88CQIAJu+3B!u@s43=!UHSqQ~9sf6rwQ& z9KD+fOiT9%j#oB3$3$uK*cfjrl%$FcFp;4RX7u!PAP8nyVlcBzOn;hTav_>yIz~;^ zt-MmY05XnN%AiGld*kJaJ}x#+z5X$t$hoccJO$|GF{W^1zYa8Q(euWo^D&v6-xz1C z&SSCjlYSSeHt+8WCNYqQMhoxPzVA9mm4=1{#7Up`FA3-)+=6Td&q;N?+JGm08YCEAUwn<*O=`#Xkrt*0y{11!63 znSU#cJ9wi=I!7S!=zjcTOalqMG<(O4IM34YK&`$U0Ci&rzt5gcLnccw8N-%!CNsb^ zkqLzQh~fMB;X`~hi-X-xh{1uKz!rG z)6A6*U{Z#&mKc2BJ&?>~12tjs-uBs_Jb+f=nX_{I>ra?GDAz?^@HD0K`{WACpF}-t(-67W!p2x-=;r#x&-MUZudwvdo)Bf?-901F< zJ$Jn!e{-%9?+VbE=yF)^#t!ElJ5zvhk9!`zZ<8uUs^cy1&HmBSrB zrY<-VmX=Z>GvAw%ek5OtXrgOqkHZTy%|!;WRnLqB~#LDAx)^ZatvX4;PhocHJ9s{RJi*d{{SD1MB;;#zyL%L$um7}aXjISl2SpR zCRN{DS5qSqj<8MswGOy|mpL-7v4Wd>-@YhX>t{&zD{eez-W?&4D#OlEY+kq5P=JgW z61L96SGkS}V-s@74fY1he;@gF-np_xUY>g4#G2zqQ4p)d&WA*K&UI4 zz{ex}?|vMEL^6QdfZoABM+hjOI64_llQY+vb6`POMg&D&;AeoD;XqN2bCxA$8X<;0 zgPFUOGGa(yA0GFs`{QnpMHZ%iW1!T*!CIw&Z#{Ts zGbe$^28nWTGfPK4Pl*mR!syAEEru$ZwgfyWC_Gin?(Z+-^m8JJxn$qMeXq`a@Qy`v z`905*J?+X)WF*5m1jYiD+_>teDh4dXEi!rDJxy2EAv?7lK zzkk!kN#P_!HDZsiJ@IZFc1Y+ucl>7@5W0@qlV2WsTfOnI!9rf0WdT3O*DNptkE=^e z7I~aORFBCU-N)Blk^*;fh&tKtetviwKANv{71y*n^Tt%%8G&&O>J-xB^T0)^ibD;6 zPeC6#Gs&<%31gGSykE1=F@|@p(g=ntl+JgKXr;t*>9xkjOL4}bR12{L7>H*P9fowI zUe;Axaf}ez^b4LxIbbtX^PRr>*REpAM=lnAufG}J99_=FZ-xf1Z=L4w<6Itd`FDbs z7X;igEhH{S)9a3$Pe;A)`@BOWahQI3e9!W7 z%b>*;i`+cMo3}TXUh|Ta_$ge>R*4~`QZj! zdoj|Ee9B+vg`CW7N1s3TJiIj&$c~dn%J)0pQ#`O7l$S1*)Eb$YhUX9labZ+4eZDRx z_~LAo3TuThVaC4~nT*;H0ie7ex#oz2vllrGrass5?4o_8dhkh;3;QjFn50|8ZF_gYr_r5vMqQZz$qJYVg5ew{~`xGKzLn${g zb&ciJ4+e%I*=idpvf(&|f_H$ONpZZLVBjHC6aj;MOnrB$jG3{(^_f#2sVsNEgQrMg zD>2niCMhBD2{ztmRA_g8J0dX zNkRasaaD!`p0|a74vL-klV$=gwZZh-~T|_Dq#0Sk%zalO%Ic zD*c1M9THhFpj`Hb3%`l9d=rYP+UL&O(EHr=rCD3RKl^vVl=dpwbcXY+Z(FkOC+TQb zX8is$!^9#Qo9H*zefKX2nkrb4!>!{6HK%;RTFk+<03T*k-Sxm&V)agfxG&dtGlsVO zI|nDX?#btto_hFvxX1UCi$%+p%>k9`Cq;GK;si_xpi{Pjq&Z+fE`zGUxW7TXI(IK9 zO0Tl)NTP0sqWN8baSV@^H@k>;-jNpNz>q#%Vq?ah6>7oXZ_OKu@A>9sTD89jSG4Qz zgAGJTrc=&tajJeerVu+El+Sz2r-}E(>X7p5KIt%_oe+;N(erViUcCGCa*8i&n7W|3 zbHDM$0tf_iig?)T*!uu<4VZ4=IgZTquCdrrRT6q8TPz1$8CgulOgh%{sovYb83@G? z6Fa4od-$B2yigTI*1+{k>wE}s$~v2OLVb9>@uj%wejzTg{qWe!5$da)+~uux@yAjL zhMjp_MDAzbDS#?8^pBtp!&bsLAO?jAE_%%=Jbhj)IxR9aS%78ydfx*Wj4`DYt@$=k z7I6kdSx~}`rr&lSJXJ`^^ws#o-0E3*5G}=IW1k)W0KT~jr3nu`x?zdy8`li391TKT z=I(YMZuqV=j7gsEt}*_&RWdpzyL_9tKU?4fa6}VJ=4fU+o6X}4GdYd4+fB^p_~n`! z#+50fvD<&CEJB>S!H;&iHuFv{W+35~b}-wA<6OvywJYx!vZLHyqn;F#0mY40SSd=F zESTgLysU6Fbmn~c&zhK#($8XGXWiIv5U} zy%uQ4eR792h#ZM&xx%Q=1IVDDVNn&srt^nZ`ry+AO<#s$pzZj8_0V90AD!bC60kCKt#So&bseJR7&GKS93*ac zD#$^NVtDb_dp`jhNLbDyvuXKyoAdrDrLjx)` zXJ*%YU~*!CSu5Fs+xRocYKsDD&B8v~cmXtG?YpsLXNZ)`4(2IJLdchAw~$oI5&^vt z7vfJjg;~u5&$14&za7D(Jz`6J57~()eCKg;aw+^&^ zIkpTQkXCG#K)GDF;0&tyHLSb(1F6K?cV}&EC`j-7c%x%JIdSUe8r#01x|pRPM9G4| ztsCC>p@a&Bqd`HX^ViwI0ugeMOm;Z&{2o9lB6kDfZ_5nIumGYoqqr%pb(@&J`E(dN z0(Xt~xX2!Ofms@YcPw#6H_1D*1VV{WMT6VtK08YBat)4A@ftoEGpu8@3>yogV;x@G z&YW=0wklQ=EEnz1d*}ixIhBe!HW|n2OUwm~OBkVx=j`{#0tIq|lV0@r{{SxvP(wT0 z^<4RLH#f!<-HS~v`i>`kXM=GTS&KTeJ8=H_m0QPWJ+d<2Gv8v6+L~B)T1d`c94O;> zN5b4`k3RL|C09#t;nDA`dECW6Y}cg7StGETc4l%TQV5q0@S`NUbc7R%;h5D3Lq)0AmX2-IY2FA zW&nvUSl-W?=DS7lYjnxKli1zzTLNVox7JK<8nNM;nAIzajUrs$$YNdq6z-BHl`@*% zePf1Y-h^ow%HWt@x0jH>ID5ykzFZ;g@QOf30dPL1VJrUtK?#Mb!>`K&{dwY!K#H`W z`HAwe}z$#Q5PN#DLtEKmxiejIjxToDLnA{c~ohUdh^oD5B<*tegr-hQ~6T9J00 zXXoXe`2%u35%8XJCh*&Mm=IK;N_wcu1B}XTIuIL#%=_Yss!s6%yc(3M| z`ruHE%b^~k-ApIhTmT4m$S97nVJ<#NGsqf83&^|iPmtz7FkP+8mEAKrVPE9Lx7N02KOTWMA32 z*j`eD2#~|Jafg}n-vCZncT+FvII@*N4VI91`OV}ZNP%#0@>^@{r^L?&6%hmzA`^Dz z`5l_31VrSPcpZ$#jA`PK9q5wK&#ihf!4|xkZT|p{?s~^CN~c03lUw<-x$A=129PJ_ z&AoZ=hj-E*H;;4QC=A&6#!vUbNATK0j{g8G{{TD#2+b%^nT5}sz3`<7r1ovjrgH-4 zzcen|aM{scAAUH&6sElt%*Nia)-!nug)>kTCASEUX19+K9WJX)*aUh<%lcc<)1wxH zPG&`p00J_|78JkEq>;h)6)-**s#$ggRi8~eRA`;$tbS6^v* zy2S51AW>umqg=7$@UYM%_D#UC*NZpIqV!Ip1)yDx$OV880eej))`a*?8A%kYBx z=@?hr+)){h7>zh4hQbNojAMrDPo_2&g?I4}w@8DcTrN+a@r%ltQ%Pfm`t{(* zojjoobT+Orl$rTRT-S^m(X7y2x-)aH;)u3ljy0&)%XOcgL}V6bc&4xDGh`Qu?wVVLZaN`?=d-ek8100pS$U~Z74 z5QMrAi!Zka_pBOTBBo3{AYZA3&M!{_sL;W3pFa%O_?!e<<1EH8aR!82^D~Np2R)nU za1u=G*106CIy3UH1;%^7TynWN-47danLi9p5tO0bCSaXYD>v(WM6y-#ecAp009^7% z%4Y|9_UF&T#il5%#_(!AnEo-$q6nt*nE@Rpd-a^~pfrL^;np-=;r=;g$b5%6I}ltr zXY-KYhDAlbDVWxYnO?Y}D$cR36shs+>0*QjISbZstF6xCz_3As8pp)X@%C_n1Pl^ntO9e8+Cb55e-uVT~h(wKh{FgBKoDFcv zQx`CpkT3mtfqF3Ca%Au8>zj+?zg=2q_w~dJf*`wC++*O!o55X(ZqVLyocx_Q$0%tE zlN9lD`LC_;=q@&mjKiZsYrJcjfCXZmv&WtMd*G8Y%tfAm9yh@TcCwkcKZ(Y5G1}*O z^useB%_7v8@N3Wgo&fb_O(hbc4Q9q@wMTag1`c*T>8Ghu24m=2A8XX zb@NB8v|k||IxvHLV_C-|g^Ua-R0FdwuSR$ZDO^)Hs^ciy(!QLF&{GVl9V3@ebZqo%+Xv{Kndxs)`BQQY*-&*({o;<(^(18KM4owJ`lC+SOY5{;QSsNg2 z;?H5XTFW<`XZ}`R0GUh-dS&>Ycr|Q*fbHUJk)E5y5(o>8shk>?Xve@I5Oj;&#Gk!- zI7(aQ9xZ$Gz2mxDFtHu2``7DB=YhCGAySvD504>ElZg|~DFR49cYdqaB^nqaqD|IB zo78)lK^GJ*3!8tRfp>V=j3oe&ecAju`%JA54;baMbHWZteXws0rJyelVm9=(T>X83WgWH#l|tR*{UdX>wQ zf;Y*<2>U>k+Ur^02!jlFtY)P4YI*C57BGZ@`q}e)=4$L@ChGtdhpcMx8)8HlCV?^Q zJ?mUp2|=lM2AMm5ja~~uLn(pzy?W{7A_&7}9^FSzpFD*~7gIR-!>s=R)v1q=;D&}* z8FiPd!jv?7yH1NOnQ;?Z;KWKB5TucIS)5_dwnuRmX;T4jM|#o28NCN2YC(}4;^s`w zERZR!7y}dAAZ#I3nX8uq?u{d35NECq@;WZHytLj{Z41VM3YDv|j`r86%)F=y$P3*G zH*&3!UuP5{Kvq30#t{5Wcfu&Ik&EECdZvG_0~w_C55Q*(_{PpaQxFJK+a=B)SnzR( zlW7IZT|AibIgT>br?cTT7JuVhz*b@tecft_>FS&lg36K1fhqq0nQyKI$SH_1_G@?J z7tUVyfWo_kUk!YM=M$Eh7@6O@qgu|h#V8dw@$?Pgo5I6gQdma{bA zG{YIRY%iVy3Z$9Sz4-?Ie%u9(mm*uK`NR0UUWFagH&hPtehbQEma$Sy17C@CK6$HS zVQ{T4UFW>U0LF>s8OHACyyKo;r*z`?{?`DUk; zNCeuJKvDJh{<6e!oMDW{N*}M@i^N-IhWy#w(^Gw({$f!CiOGtVZokB>*MeP;aSGMV#;t~J(f z{{W6;Y*94^-aEA@jHnBsAPCLP&yFAg0R?xY^LpOiNVWqF*kr~_ zd&Xlu@j9^BYqKQz*I6rt5FG%90%yMcIP-&@1_idnSX^xX0GU>XMA2bxN_vs=eTW7c zqKyL-XKg*EhFk=4UJge?6Z>Hq5`8CS#JIZ z*Dhubnv*Bfn{~uMz+3j9{{T;XeHdE;+wFgV`r(31eC>1mo_Pb6n-`_^^XJKq15MP% zO;cOni`hp>jT!2U!^TI#kB0Fu$w6I=nVxrCxL;tRvMpuN;&r?K03^>r3JR?<4zZ@5 zb9vwqy~J))IFDCS5`f8A(eVAt<>U z66rJ3&Yx_$VLO>)5JOiGopDeDE?gE^=My+)?#$c4!4|@8T03~G$t%M>DF~Dk1p{F$ zI{A1aftCziIPLB49yQEn)Py2?T@8BTm4&9xrnA@1zEVPvu*a7d%lywAXv%9ftsU2E z{`k=?7G>=-aFq{~F^nAm17r{*8s8vsQMI*<6YmIkFOC3U%+SSgagaR+jp5)@qIL7# z3;Gww7Pk{I$9?u6sXE^SBDu;+BdtRh#<&F!fe8zTe~I2Eq7)OQeN#BjZl|w2CCVQW z_$*WBb39x@tY{2g{$!eGQgAfcgIF1$%a8hFiX+$%JNU_m`{H3}h<-nxp8R!?8)L1b zsP{3Ry-e~RJR5{aIIuPi*Tx#a;*B1>MhU4ba6C5iKNpxdg=TLY>A>e3Ut>7 zci&ySNl=)Va1cufGE4mNawfnxPYPlV@IP?O1YvSVELY1b=fl9QUBa2J;j>2WyLf{5 zq2{t#apykI3v52kF&Y^E0KDbpqC!moIF$*fKfzuiDhoT&-dJ0#-yVUx1%pDaUng)r z9HJwb!kGCtF#NAtVhLg@V+E4Z`18GSXqCSb`0HAde@YcVjrDQy{Wq+fRIs&4SJUp% z@;c(!;Z(3^!LEhC{PLy2G@usLQnRdevy6aN(6npA=3i$b1(}q|?Va9+k5eoP1u|UB zZ|mJzeF!IBdapyFyiCZjOV;~yu}M3i}$Mw-{eDyD2xF_-X+@W zL!Yihfs-JV#&d|Hj6Kd7^z8SI{<7fsCmNt%?U9d!};<_myuD=Py0v@4znE}GaEpkB?n zy13(AL=0x@!=WuQ>s*l%rgCV@g0T7I(F#K(W-n|vjehv@QA)>q2_ZdonVE{>7N%TE zCac+|cgtvj5~*FG=5(9jN{&$MR=KqeM^G28CJ0=GDGkPS;?MHT6*Rzw%Ya=IMih}y z$w?xvG^m*$6FO%A>KqU^Oc3`P)_co#=78Y==$}leD>$N#<8+wN_m$a zH9Fxv^+kY%z-K|WI`hhm?B{mLU}(k#8PHHS(nRM#yw-3VQvN!HWk+V ze6--O1-hBpuTQCrxxBUH43YxONa|uuWx(PN%#*08C&)xMxpEb)LKCRhsbU>Cg8c$)O<(8VMsEJ|vt%M2-|p zV_8$ruUnj;OoPgAw&VKX zZb8<$DVer-I-OGSszX{%4B%mn>wQVg!%R%FP-GQjlHzvfkQ3lHOP$iqm-yEdBHjh_ zXJ(QKy-xyKRA|tegpT!(CU}y#Xn;`+C$j^3le~u$sBB!n8}qxqk!&VW?`9sEdVgHe zz(E?VyUk73Z{$Ei0a<&S&`Uh;fSpy75c2qM`zH}AT?+vF@%M?T#T!tSR}3`oc=L95 z#J&?iz%{~qn)lH-1rp(zJa2)JnvsvP=k>uBoP-Oc z00@@7tRbFN1p;Lj^>sh*TtzKaQwVNt)NV6x6|E&Iogn3ta@}Jm5K`PECYTJHg!a

t)XM>3J%JsR>G%W?)ZuBgD6aGJ03RUy}x%hy(y3oI@cVz3WidDzV8NIP*ug7a!~q zgm972<3uAb?|{WNj>Dmyd(|I|)fChOD(M_$&i?=a>@J}J

AI?q@Sk3Um&#`ojj7gzmsu5==Md~tdQNCe(>OWrabc}nDv zCYhpUN&f(^i9sEZ{pOx^`p+ET)bqSKE!V@wP`x?$%r|Pzv0sqNnq#x8`NyZ@kT2dY zZ^zH(*TSG8tYe^#%wxEvopDeG3x+q@CVn!+_Amh8a9E`crR>L5#pZp8WK229HhR8t z&NZxI@d@X~X0aS}nG#t7D2cp>^^<;hP1E0R&qU6>_~WV0+{9a%-}?1A6>>-N4Hy|+ z^<3}^VvNkRP<-eY&s&6OxHA_H>5>Dd#vI-?3^-u@q);?6)7J-3BA^Id5Cq_CvnuU6 zW+qJ9lp9Z``5sk+lE4tm-XZVqUWq}BORKbxgFjqlQW(L~Gp&CUIA<@U0s~68k7Er^ z@yQPSoMlYRzCE5^D1jVIOlqfJWbb=d(AYq!zm(lNzPO=mKq@*wBS0k{h+*IyBcS5H z0i!ec-y|srt*F*P@R;-T4LYvLD}l;Agz{Yb3Qk1~l(^6e@aX&Fw+j>n5SgRsWX4>V zgg8NLXdO$2)A-=WaT#GXzs)8!-4_RW&z7-z?z!{B8ApO-d$|?=0K3Cr4}Lz3O!n^A z&ErKK+&TD05HtPW07Y`Z2Yq*}=WL#ETooXJR83)%er~acfJ-XErAt>>i-WB4f`X=I zwloFLLba2LNQf5d+^r<9bH{u^tP!}Tb1*Jc_uDba!%}2JdE1M!r-wXAQ0HZtLl5Qg z((p{6Xgi>o!Ns0@aHK&!g~@==yy5ELX=OsmQTPUS&Vw)pngSO_IwRm8IRZlssunLv zTq_xl5jMao-Lz+08|=kp$yFE}&a=VoVt`c-D#ug;NagI^fa(WC+TeY7HAb=dL`N zHI9?Z*Nr;xac)fpCciGd{F&g>*$eP#nHEPMM!9gw(vUhBhlRyu5>#YDFhpYjN)$4k zVZ;|92l$`&dy_m^QdtCx5DUgU>SK*8q|;`!ixrc9I4~$CX@!{$fp+G9NsAa0PfvJEj>>z=R z5iEC`@&5o$CyG#kAbNP#@%Wc?Y{d26z2?&JaPr5AbhRK=8G)jawV1<)Gr*9*VKbph zkxHGRI2eKe4T8tiMc1D^p;0zrsWs%6&bK)jW`$?12E6tB?>9+-`1E?oeep2jDr>26 z(CBeqcgcEP?bd$1_u(gO>lIL+gU9iLGAri?X65ncKkI^GcaKfq{g;0n9PW8;ee3D_ z<{2#nxR9=6JgV6#&b_~>C2lusm>%W?h-!n|xP+jE~D`>uVCOR%aQ6q(%5 zocgqcOl(s*H-i5Fd`b`=M=q5*G3D0b!~hiCnIG?F71v3@Q=u3UHPM&j^`2yqt}wc9 ztv{Xj+V>hg?8~2qmE1ff-j}FHhcPf-OlW|iem__dclL=lU#Qu;8=nZiW{MiwBj3sqq^V#>;8Ds z=oo5e12G9BoOjU3ZJ~`V3S1d~Ih;UL(8P$#1-ZV;*OEqxCqjVJj`A0;!;m%vfK?mz zcFRvZ35YIRBVkbcnYn4k6_@}m01D8LgLBe@mN5|=idnI*Iu9A*H3Y#UDC&;=IM2^5 znm{TzrIQN#&Uhds-67C1?_V}?8lB>G-fdp_#|KxR&ZXdgQ;-0&0-pyJ`Ni1hWK zE5%^g5`#g2Rc?+qmzHFh^8&?8f>Y;wY;m+{$Pwr;>Bt{2R0!2EGM$OPUpykxAOIYz zL+RgrE;VHks+*lU>nB|YAO!({*hb)WLTk~UEUoxm;`ecw>7E0NrWk^Ty<(Xy8@rBE z3T~A(4#g4izpG$d+XKBIPvdkez@R)z=svyn{ddloSSp2RW^VW;y@SBedzNnzHP_F7 zVo;*W7!;YFJ+m*x7ziptX646=XWte$7q)ut%v+P|#}HALWzh|FpF1;;Jg7hdsv&wD zBn)Yc=;KzbWME4xiu;c&*k_YymOOViQM0**A~ebOq0W>i`}5%hF}a zx`57rf@Wh^E+AU;UnzrQ!(oyb1jyKj2vmdzO6<*Gs*+dD;JXbpP=i%iIdu<_;L5H5 z4#jgj0{;N-GA=2l=qxASoOhYWOEV<%+1H}$e_SyqNSVo8fz+1{vhs&BbE2z33v;vHKAkyun@p==oT-mc-ZD7iXDrQ# zns&GKFmTHX!y9Rxbx)J4lZXK;lo=zP#Ov2ixfQ_YBZ}Y;Y3FI3a0qaeZuhjKJGuNb zg)#)(pvr}TA9sFG7Sx)?Flk&#*LR7?nLr7QwN;x>Z$`Nq45>A8y(6`m+{O^dDloMf z*}SZr0)<;R5CTz5f37|#3zaefq@`x2UmU2lfNOKmQB1cuConlMpu)k|fzi6+4VsGc zU`Q~Dim>i?jySXoD8z1R<7v{6;uxqkOgWgCcs+RL>43#bEV};yv5dTBbkIEB=4rha zo;VV~)ySd*OROYrwZN$eE93>%*QRbWzzS01M$pE?Lwe5uRTD-+uaY|TjOV9_a6+>q zkfbcW*W#Qt5D}I+#yy2;jTtO9Fcop7q*_tw?}&;xdIH^&FYe=l8U`>YeTxJXE*Zo$ zQ@~?^v+Eem-lPynGJ;~IM(&=~7YaJu;29tSLn6#l{O9?c6=T7-6??r5 zZ?xh&I{@d#3}ExT$ab2?0CKZ=h!=YM?Bdb@VMP#37acnDt9U%j8*YcUDV~Eq!-FIc z0!B%I3aSfC4-hL6T!@*%vZZ>ZOmgfBW>W~V6tp0-O->pq)T6f??DTqT$U756k%?-z z9vhxO5ZFTGs|jq`tOiaI9Gk6BRNHQ`G1J900wjF|WoedwjOnC&PH5Ak`gVz zdVij?s9Y;?f%1Qx8n`n0oPwW#ceO4ob)39x25a8N8p_e1Cy?N|R0d?&-|8Pv2=>+) z*f+5LZvcn@0;vtYyF31P3^|cmgOR3=vj@jxAPc6vIU*N@35-*an_P&hd96>LjT{&P zp>6<;y9@!o5C&lN!|&C?~JyL)|k;=@IAm|Q0bjG9<>toV|%xmWE4927bn|)J@IZcjFecUHdFYY zJWYcdu-Qp_GeyPgihD927$n^EV_2LRQyTBb?tXK_p%sely*ZZDKR(1Ee31q`qXYHd zjut^7LbSTqRPkreE~Xrqt?jVXEHGTWMKfHIN$5VmTrOBOp^x;AylXAsp#|!W4E$oI zFGl!4l>$|48VD6LA3bu*-GkA;1>Q%e80iQK99e1^S)-Oq@|BZf1AxjY?=#MNo8vI= zadP7h?|GhY5d^F$8*`OQJ#J?C2+%^2hI?Fx?)~z+GNVA+=K2gCvjpI!T&goo#yqpn zkDeeC;bHkI$&0glILR$VRE5%fiHMZ{5L@V`+_cwK zAS9AqXUy*bv;T4h)=ST^^FuR z0r&IcjaIV+K_Q0pW}XM@5)y{J%A;B_^0_z~0Xu-9Ofo8G7Uf$(Q7PYx%O#?P3xSzt8hd9Ed?J z!XK|#JHs`^Qrtkx6IrPtZ;9tza)v4Zk3ew0%&baGqq0Onw}fB`0}fOOg9cP`4iTUU zkOC)aZQfGMlE+aR5)A|gw8ny&!wx>QO%YEd3dC?+#_&LpN%MjDr{m{>;SfZl6irIx z88BCh(qu^wX5bD~GAmkeG*nVJafnc4y8C@FhA_#aD~rrxflN~X<7B{P{{RdI2L(jh z7td##=O+za7{daw^Mn1IU!d<6uJPB;r`Iz}-o4)D{N?W+-E^H`?8;-ST;$HUZ_NW4 zA6dEi{{YSzLlWaA;#-nOO8M|5%Bi-6z5aA^4CG~mP#Ka(He1=pK+sXM2?O45b6sgt z#32w?W+pVa#!T7F5lF!%OpXQ)`_|qxQH5f$bAboX_%9VKqwD&2V63x*VNA zHg9|t8`U8^jJXMeA`tJ4APf)y7}(n8TKo9WB)V3dc@#? zYM3m# z!H+N^GvpWNGdMqK4$w5DLKGGalP0S9H8VyLpXk3_FE;_jleg3|>W}fd@}Q`exnQcg;rBK~Wx(Lj;z3uKFHZbBy@??ztm5 z(B5dSQwDNtMr`wIjF~{0aP%Q2yxiVYDGz zep}$>P=0$P`@g(;=F*A;eoe)PU-?0oMi0ZZ8Q9-(?|@t~C}I`ggBls@imsGInC^x1 z*ZJcqI|}`R9>1%aS3;r!V{TZOuZ<1hsT?ukuRUb?T z2C?PVefGRl5HPzO8C4j5a6GXA0ODoxoY%3RVDTWLkO3whWN1feyr88O99R<@fXrX~ z;C3r&!};I)*BBtQ5PBTD0b}rR&@3&T{EsC2^LWtiWeHd?A08W&hM){31C7VN!_VdA zktjzJ?jfimp^~bI7PPy@P!$PS#o>Ai5rxdhVoBANnYdJG6a*ugEy?%9Hk~q}H4L8G z7{J4l0T>Uyvkuz+Wa9u~D;D3M(kJ7DETXY98eR5a!!^o`8>>leJ6nu9wj2^-DNq>~ z80~UBl8+ zaNunCWAI}6o57zwGD48~#rHosTyY}mX|&2;)ZXbba47*K8=d!U%jwy^Q4EZSlc#xZ zf6I6Q2dRzExf~bc9;Jgw+ir1>9&`1%!K7ph8rg50m)GKQ5fUVb1uKP6MJ~P#E$8{bd|lKkRcEg@h) zMbfD!;L~ZvHD#JH+sA({Pm#cu!#OYu9Ox>@IPy*A1ZtIo9*ykecr|krWFO zV?N>zy7Roz(9^e4yHp$TdYrKaJ6jbooENO4t}#Onn7GjWr=98Is#Oq{r)1Wh9#f47 zQsK@sbzD|LU*98AX6B%G)-eoI8Ml-TI4YSPrqIIY#xE(r!HHou9(MwH&cYK-p&}H{ z%SJa@w5KXS1*UTGy>Bw%u#%O7hXMs-7+()r;M|cGTpbOuhbZ=Elpbqa5!zrqJw1F0 zDgtSM3K}8@sbdZ@q!c373k^Gv5?otBMZS zY~yjm-FQPb0HQ^Uah;R?IZA?<(h$L#L|sXy@COFq*0@0tiq6f`mx^%Op!r79T#@n` zA{Gvc4BE%piHz_?ri3tLkMZ|-r2-0uvp|ypk|`PEfQ6+Jjhl;vF=HFY3dw_DN-$$C zSR3A3QP~JV!{=sYn&b+=j!Xfqo!{$RpNf1o8yCI;TfhKF zY>42+F_(b>8V54~!IWf0E}Jh5tpLRZQHsT+FMzq%84w*{M#kJ_PM+QPlis6xdJ0j-FCbMX6*#t5+oH41pC31z`$ zAT0yK07Aebv~EfHZuo?S#6lR?Q_U{2VsI4LO|D^Guj%?ZNp?2CV_45v{P)H|B9OQ< z)*StR9Kaj`<~q*IP4%Sl#x!gJw95hj*mp8UFE^UZt5_ewG1mTRRfSo+=4NZ?bBBST z81!SEdG){>jKsBfGXPB221S~>@tZ75<7#H*dU|MGXFN0`e=O_ew?C(r z03u}zkXe#`8ftGm8h|;(5>#rJ_!#B%|ftJWX zFXQ8VhZeG4uE9>u&F_Ae@lYT*ZHaz5n9pVFhRT{gJnj2s@I3-x+G0zK-e+$5a^5Bn zhas!J=fZW29I#KME&d!TJ)LqWp~t(NX8!;lHzUL-QunVe7T2(!!OV=BDvXVe5F8en0#maiMw-c)kK*wy6T&DdlR5aubB!9q9|mTfurV0pb?3w# z^w%=?4F3RhcnDmiV~V-o!SjhZgbuS80$erz6`PzBrnWCf!HjEJ&y4VcOfx%RjZL1( z%q&6)($gD!m)Ud1!g7pA#~MVQH2Iu9=rK`c*bu&Ma^r|#shgURDZoKOnsA&H34rJ= zs{3zUet0SELYbtYJ)WlJR^kMqz#F*0!v`1RkVU9DdIbf@{Ne*RhX93Ip=4>^@Jk8q zWhjKHJdG+dZA| z5_@eTuCa^7 zTRjGglQSj<7w&KzplOy;B{KF?%i)O>w#lB4H2rH2FhoIa>lp5fM8oC0m}spS<)&TZ zAL5snjzG=AkA95VbAKGjrl*q=M?-e_!QUBjfwZauvs_KH>hO)m30Oljp_n;rlYy)d z8IYz(0aUbbPGx75Zo@@1&+Yd{YFlzlr5JbQ@tkDf$Q=w(>Y$;SK5?c@0ss(cEYE{C zq!hpmhy>5PnSjFm`s{N|hL<*fiI)65^IN8ewMS01I`gfN!U(0AiG^40U`Nj~zJ(lm z+3)Ah7;ti^z|v%`*}ZB$xWR^HNkR%?E2Owd?;{nNOVL+8S?{d+MvmYp4IPdrb6)=d zLV|0#<#hP)S3iz1L<=;XI``@LF!G=XI9wqJMDpIq{9XYkWcf&<(T;0P7{>zwQN_Eb zi#4~_F?pbn4TNB{z}-%W?E5wYnNTKpN_FUgmP zZ0V7MDU=5Ip69U*b*4u->GSLzc*vCvvZ$uAv=ivudSt>(ut9fn*Z%+-E=f-!sVU|w^mqpF?Twe+1MZiQK%wi5uBb_((rIo z7}Own4zKr}Brda>^lt(4y8QDPHfe zMxtRi5*a`QvIb}26@~O-fq~7&{{8VJ$~o}^#_sXH2$~ZOWbMQ&GY-t>m9Yzh42h>I zdG8R<2p9zjMINdXC1+1?pkgB+%xBR>DpxeG5&R)Qwm3EB?-Ae_?-+gg>krq&BezGF z%jLGO$JZxXRdExg0Y=Y^w>ev9Q^`?f21LiL^~rVvaN{w`{{S6d%fVP9;RhMS8}?t$ z1uSJU!QC%Z$eoy(;g+CcK5k=;?D_B<7;sEFIn~x2WB!4x-wdke3TFLDnc*|Zh&t(Z zzw3ZyhASg9q;sY_^TMDC8OZ!+8^N99(*&2Aa9%#wZRE)JW0@~m?SWvL3GzI@tHcK z1r>A#OpL8AenblZjz$8e^5%LxRp3;}DbgBMH+AuzEv9QERw8Vf`u<)kAx#kYENPq9 zuN)RtCLOD^wAbgvIFhvaC7%_`gU!X)5@m*n97d&^LiRDxpsncCReoEOrS-}uh(ZVg zA!I?iE;(zRkqtp;tk0|0ArV4$!0wtC_`}}}up;dxO@@k5*_oagN<~l(+%;1!uZ{A+ z0|AN9#cJQyE!PBwN~_yR<$awVIe-bGxyeN>1(!*Ok!Ok(fs8KW29vCnQ$Uu;0Qpi~ z`+0(u02CE4N6JbKvB<`rRBXvEeafaY!WdrW5nSn94JeaXbI1;4HpHW<4j%Rdt#=)6 zS?$I*tC@%#V^J$Q7+~zZ=T1Cv0KE~9P?OdF0A_e4G0;#%=cT8QemL|>Op0<+{f-{- zjv^%lF~nwy-(~Br0aXJcCM!nD>n9o^b0FlU6f`PPYN0hE4+Ka%RE|Rnuy8v#z>Saq zd@9{hE|*&3aJgm~5K(p5b^U_EwL&PSiZOa05@iEu0xX!c?1w9}9~=k=Q)!xJrOm!? zlav51h7@JP>G54Nd>lqXB)u~lncy_BL1~3dQkjNI^*Pvest;~wkCc|PE9%=Zq%39B^Lb*(OmfHhx-|mnv};xX{o!Fy|NeI4)eG zLBQDRFZ#;&#!2U8p4Ue6;`hiqZ*m>HF7Hw#oG6esTbnw>`nT%{u*8aEbTkB235rbK zWX(PuCUbQq)!sO%5~a0Z>ci%rFK$y7+eTUpKr514(}WCEo<-QVB3{HMo+=VxF_%D@ z$+DMoT$l!he6uI2<1D@JhS*xCqcD-OOd>N})2B?04LL)u`o{RIV0Bk8@!lLq$=@us zxUMALgnV}5TIM0Zxz0@20B$?3{_BU~9`=KcC&zpMW6&lIu3Ww5q~CdH8Z3HG;qr_>GbvB^R5T5hO--x?aS|E;x@SG(biU(^<7+<;C6?q zKkvtUL=JSQ6Bi@X-hMO80zyD4_bdu;{Fd=mgNQW8-3KWl^Lyg-g>ZVx=Fqb?9BLus2E*L|#pWiW-_vY3XD z&bPiM1r_s1T!0k~Vx4D%(|XJBIShlC{to$*L9VTsn$5m3*7%{MVXAoeuj^R61=}8l zb?#^Hez@8>OV+TB0f($Qoz5U=dCc!ShVhBK-EmMQdg{}^{r)*wg!c>u-)??2UbwJd z1)lr$;G}c$%B1Q-<|V_^m&Uce3*?gH4*m3xc**CHLn$B!v{o>=3gvNgz)J&cKIQYC z{{RIz)KEpDLpbxKFx+}L3N*yYS3f-;UicX-4C8;d&br^v6FCb$$-Yegk_nBx8t?v{V&RpB$ zz7)|55Sj5(=cadV*v00pW8JawNOl1FfW0*;g$VKV2p6p#f$ zEEF~9pNqsj>?nUid1X*0v&u3mH7dGNR-)K_XX6)A@01Aqbbmi`t{c+<;5mA35Bi7{cz%-KhABW1{owzH2sJ{XWvzMqH z@mfX(f|-Ntk6x}G(55a`>)}4NCo(|fH*t_yX*5uxPPo#8_5}8M&i?>UHWUMGxB$I( z+%>)dY2ct`gw1D<+?+mGs1w+!;2Qfg#87B1fX#)ij6a708)3VUi3UP>olhb+CKSuH z42NGXc$Q`s#s_h(b`A}bOUPI(S*#frftpXp1Y(#9j>>^nS2SB|f|>$|=-dk>Jm{3h zV`&f?uW0SmnZfMfa>_#1jJ52-!U2vUmw@~Vnqj-I@aVE;eS<}zZ%5~W2$2>$*h)-i{<8?16{M#lLac75P7JXI9%h!BGx8O*cJYb#TxL%_IeI4jgE%OGgkrI#)N z^8hU}uL2oZp8NSzedvwvfd)SY7kEzD-|IQKMg@<-PX}1>VsaQ0U>yT%33EbUM>3g= zDS!}V+cRH%ac@LYy2eWG+!F^1#D`%FH<^V005gVQ2&1_x6H8FPa~#!H+-dt&k5HTW z;wU9@vjW7pxjpXe;wD`jftf1r64A9H;ICs(hm20_yZ6Q*7D<>_qDD=|-&u32IWTdk zs(w1Jd?6HF03(_ZC3`QN;meSb4}l!`*NfkJY zD*WP+9q9s5Jmfe%aGd*?0snQ5`4#doj_lFZ8mJSY# zHwv{w9?kEH%L1y@n#Zs6!ldy! z#Oelvc0d}-lGl)n9B1|DX zKh5fEjw39YmnV4fJ*~~hGolw+%5IO$^ZfA_kft1)+2KHYfcb*Zp1GO^Exi}UXvO|bOXGYjkieqh9&iHAG zR*{iZDEnWGx0juXFe*UGi$gB)HNvKa8%#x1dZp6&8s2`^%Vet{RAdU4W3U4g7E`u90Qi0w>C!oW%=bA%$r`h{RoanOzK; z0KDv)eUjpJLk+Pkc0?nJAa{h zP+`D243d+!phI-A$v{C7gfxSjfb%R(AZgA6oU85hw&yHm}6suAd zYGchZH0hiHVJQYmN_#T>cv-}!A`IlWHovSjsbd+6q(@KrHDnp@wJk z!GaW8c2%v6T{lva@T`R>x&X19HnrV%#z4I?>4-<(GreNVa-bc3!Yrd3A@1VZ;|BMXD8dciG3H+7ZMUH62p}KDjM*BFvPqDZhivSxI0BP6c>&`Xc&Gm2wm0hmCc+c?O z10{np7*NIBKhGXie2R*!pm?lI{5S%%MtUextGg?5 zZf5XwuW&%Dkx^DXIDGGvRRnAZA*r?P6<9GcOp>D`EZtJ#<-|U43qfV`g~OSb;m3|9 z(=vp>tDV72qYOLY2?~THXD~>?UgcMcSa>TTz)^4R`9gxQR z#Bwtoj{yoZ9FR?00KWVycq0TNhhR(AjsF1804hz2QOdYF)z4<#uP4YIz7%=S;{2va z*Kd~ZSII9@a=pV)&VN?6p^f<9TeQrr{zaPm`~f_HA|m6zp0DoZNhg*ZT@zAwpBUFW zj2#9&6>@tIo5>)WiGaA^;$I{yF%=NMiVP;t~5n9%|s59>McF{AuZx8z?O zQO>=cx=ne(tKSk&4Iz#A&#b<6yb$*77pwwX;Kn{V0%KX&4P*R64eyGCZ#99swaD?A zJ>?fE5r}S)=*L3UcX^;$vkUQ_i<^Q`9%mmAdM;bq%nrlf3t9=bIq)5MgQMvL%V(SU zi0^(dXN-&kU?GpgJ^9ZVLB7o4^CVdL8F$ArYwe46xf$6k@tnMX6UZ03jATeA0~`TB z0TM?KzWw!_I(S^{S)g?cov)Z*o*|)CI!hj}pPXkW91JLshSA1zV7FM~mtmVR`(63h zuRIELM;S<6ro7`lbP|LI^@A_#t`-Rlr%G$Ad7R!K@vq^_DXSyR{sYy^e%`7I8U9RcjAwEKJ(Q3wWHu}FwL zuJ@9draFs=`e4E{t7f=`Wkl_OnGT!O#*7KA%b^-)Gv#Y1faI+RbWJxX?8)Tf)-)wu zu)-j*zfSm}5nf6@Sv+2%` zD6O*@5czFV?}V5YY*NFtBxQBnDF*wx=c)N><%$#3A~KxHMciwi+B~6)h+Nb z*Yz)a2I;a)l-}3k;}8PKbFJEXzH?4TA)6 zo=4EQ^E&h218y$YeRn6Ha*fXrnMIU<%hybj|P8N)(YYHX9J;fdpY2 zzbF_D(FH~g;X6{P|!5V-h1E_k4)LITHRbMF}OzA+GdC=^Ll zs*WAz&hrR^Ku|0xVz_6-9A|(mpzSxGI`2FS+Kx3>9bw#eocMMk!Z_)Y1Q&NZO7MW9 zF4^qQpq=ljilZxxYj^@j9(w~4ZGb`&TqU}uonbWfh$jLFhb^Wpj&&p4HGIY%&&1L(`P@8c}wNEFUceCc6MuV^{LTt317I6H7JM0cu`(zHQ47{hD8Bp? zk+H!@HmprV`2)!~;ato07xwU4jMz!A8@2{pC{+PQ`RKtKV0%sE$P zPZvBf93{?iJgW|;&3%jsx+iY5?=RlCtQAFxgx!u-K6BnU5RimaqL+v_#1i?=`;$7xqxcpo9Z?~Do z?-XV{l1<|tc3wh3cFeSV>VB_y+t6h5W1yzY!so{ZlsHo^{E3180JI#X$+Yp~PA(+| z=ds|_ZgUWX-+RQ|*?Q$FzF^|Uv2ldJ`^Tvz3ktIIE~xsw>nTBo@Zr11@@rSFV@R`< z5Ur7gxw5hGky!;M3=<85XZiCvQ!`0bolz}vXE|$&%4tca2_(ZPCAZe=$!)=hTT#FE zuDJD(9iF=X0IQ}Q3a%y8{CsCHpRQ;K9GEISlG}{a?;b2j=57Awd+XtI3HPqC;P}bJ zRT~@fwqs=8J`8acp$m_8=IdI9xZLY}W;Rd!G5LZ}A^P;P1jc>i&j1JsD-B%@Hh&(@ z9IOCx!7z-=wa9&ND#_#+u7@8-_raSXt1w zvyl1L0)8@^K=@2h#kqz&9-B`1F`0t_BiYs?_yzhxRLKxK8GUayywKRpbW1DS^(GD{ zS0Do*VvU}v{CowXEz7QpiJZTA>T@y-H|2i2`|lm_A_6ZU=I2a#zsD4gK$&GBTWFZX z?c|nOObhS=U^dO)GeZ#RV2(wIBaB^cai<|*0ql@a4>Ej9z<8lAXiF^zuRjGi5H8-j zy%`rZf0K}BNy`h?3G(`c3*r5FR z*A*!4m^wSUele6UB?47GPOqFJ@1fOmV_8JkuUnpnw^Cd5$=~_w^MjTYa@mH?_3iUJ z>H$hYnBggiZwE{9R4n8{R9mJL2Xt2jXND+@7H>nDfOTXD`<5=-{ zfl>i723fyf6x70^9|}NY2XjY`VaRHVkB4$+*M2$J6~TfGs5=im>&Fq1uJ)4-xzZly=3mv z%k55R5TBFrH{JgEmK-AE8^1Vp?_<{i!Vj-Wo{rn@PPrhx3awY5xMpDsbHN7G?*{JB zl~Xf*d7}ceI!*fP;+zhVGP{Gc#xuVxGkMso_#c-6@kSVua*Hq4FjGr*|{ zlOAVmuags5-vDpO^^}=?`(}LP;^@=KXUF{h_=@fC+vojr0LarG;`P*--g?NUAt}}L zsr+L3cp9~11U#=rw=|wi@Ml2ITuuJ~9`EOrRcH(`+g8Ho{&*i|L~7}5$BloQBDkGy zi#h3-{x|}!T`rG6KX`@aOPvH4FN49ja^xZQ+W69Hd)()Rz+0E(-A*XDD8~D9eEQAkaYUg|SWq12KY#hk zT@cAaPZxCYKN9fmH5r+Dy_tOSgVDim106z}Pct(n-Ej`cn0Dw) zW+9)>I2pf2V5w4l5Lrf>00-zQ*tb;h~ zH@>jPgD6mEEuF?=`o4HLpv2ZJLi@M5>yCy%F8)aGKAcH-0Z)Os$ibb1viHTqEEuLz z&Cr=7RKZRn3dTy1!Nj*B1$Gv36AzIjgrYI`i@*YQGDLb0IfgYPrxs?A6C+r`(Q;>3 zm!p;x%Yz$9-*49e6Yvy-!b*twX7xM=v=yRwo}|WK905%(3qU!#4VwDaI$p9s3B2Ow zV8zAjgl8Ej08ckQe_k$e5LVqz^MIP_;zzzBq}q)~PNm9gQ`a|=M#i~_20R??$6Q9- zf++C|kT0BP9+AlcARysR!lqSl*1)9z>`=EBb@`usQpS@Im@5+Xrs?WgOsykvwROFR zzW29*pp!~t1_!rcrI$G~Byoe8EuiWj>iNUOD(@o4z@WW`F`g-@N23H; zP=MSudx1Gi5uH;Hq0FBAY~w7UD7LVm3ov-k)uu`%3xeimi8Z?5-e|*VLL5M)xji|j`NVh{G8Y;Z)@m2(W}R~C7v}px z4}iC_Lx7kGSvqZeT-c5+;sX?eF21^j^xqlaG|ncmPZ>e;yzjh%Hh@K)X{&)BE=zbo zEGfE=Yw!N>@alWMynJ8W;&N{zFfyiP*RP3}foYH;BNpGb9b@YpBiN#iOluSH^{)9X z5;%whA23Wu3xt=k;1WzEWXMHQ>4C4*rdxHx`*q>IM*`tvV%3HE$G@asC zUpo+AJz-&huS2iLo>6c_mS;QY@wf8ua)KCLi{3Zx^_-jnsYuH=YoUq?!(1-7Y+y4* zUf(~Q98h9-RW@xs;d2O_2LJ$aPx(IGubv=Y@Wh*@hDp}G3&aModeJNp0(~1EM2Nv$ zfOMv1eT~f63BbcgRER`(_$Ai?i3L9`u!Ib*QyEVW=Ze^hltF07nO2=$eY_N;wC8g$H)bLD=GBF6 zDQ1g&{mY@oa0OV(CcwR9-lDnSpaX&sqDLfW(CjqeYy+h-a^%V;F!`1@R7;Mi5NRbd zzL(}&qe|K{Kj-ir44KaHWtM0$jqw!YNnG8_o1gRVhU|dF zz&Y`!CD(&F62=1!6{CAWpRN;o8WnWDtcr^pq-j-Ara^QL#WB|S7z+r9n0AkNJmWEO z#WfJUxkLO*)%oERs6*TdoaIl;9I+!qYlSXx^NH6iNgxD;2M#>Gx+ewzy^&XB1E=5D zDi8vj%42>BuCkqTS`yVTt5Gw7_}$M0i2=AI>XXOI@x>PhVo@I6_x}KAi9q2`_7TB; z!g-t?OGhwcu~!L)D!4h|J5)GKS{G#w+`<3@m1|}?nXmHv=6Vy&o-*S#{{XTD#{&jR z;B$j5%=fSC;s#su8M_&oH@wBq5h}1}D4zVin4h>ifZhsRIBt1(Uzb!OV<@W3+N>8op-ya1unRw^?wd(c1YuoO%Mr1`FEO zclzQGq-F+LG#Fo4$J~gfMozFvOIYRWb2;2X;hmC;U8_7zV|)iO!B8qe`NDacoKFgS zh3k9qnZI12F_bJ_NK@U04Uc! zGkgrtS9dhIT{eR!rD19-E_u{_t8kd7fGbV-aKZ)Km8N@!xvCKD^~CI|)Ib3Sj>Lr!fVT!eAWkDi6QIt`wwTQUZxkvu^c0 z@)1)Qt#zv3e>1M)aTZdD4~rqe{Ndy2g>lkXp=85Mb@V550z)ohcQZHXh&Gk514A#REr zu1_x0^Yb_%z!NEuZl8BPZvhN4%Y&uHTPYsjRE^0=zg;e~=g#zS1%qDO4+J-Q>e zDP3#Fer_&v@zNnO#vW4=Av~XW;;Bd~G|`dnoo~I)Jj?No{r>=7_*$yh&x?A-8teDR zXw1R9_woMtfsod6CQ@-?fTQjq(Du3J&-03o2_xy0AY); z$#v7~tWI2(Oa!e7X668S!tqH=_HwUvj2ZUZtZ)$vSPlt;(7ENfc%ho8MIf@W!#|hb z2@SS!cGse9$4I1PT`rQRhLAefP;& zAc$mop_r5F7{?}2*_9%8m~-C!Z-}{Ei3n6?1{pV>W;i7w0l;U@WB&kO4*^nxH}0Pw zQ$G>mM5qu&=*x`47X9adh#zDX$Z~+G;l3vsLt93%9CferId)MtB7qsPz769uf}nw7 z$`ibaV zwrV;!0BjBnZ=;0gHO|PDGpRulk?mm&onnWYAOa9oRI|^E7e*Zn<4^`|6}}}9Zv5kj zl%jOAi-qRQerE{KIFM;h0-rTu;4;9!&)IQi5lCt5i1KZAkj#*B@fgTec`G>jZV;^)Q5z9Dud-cfO_ zBR@E+gA~)X;L;Yx(&BqR?0VvqK{8!jZpi9=aT{P(l>2uqr;gWQQ1a}I?t4s+tmMQc zE$X%&SoG&TJV8J~fLT&i9{a|9aEB;0Y=Yn+$U09mF9RkEi`eSty#9K47n0!d5K3mP z_I>dV&6HDiUl;mznN&r-5v(VVZtJ6G11vHs!kdr;e=@^2h!m!F2waOhch!!UgC_(v z2EKr=9(c_A!k;Ii;{bygE_=`Yc zm6h?iudj?EDzNVnZ1??ooB)<-i1!{nonL&~W-_~;D*ko#nANv81Tj9GW6YgiL82SW z-|?S{zZ{l-0AbH_vm4yJ6IunNN#U)GzOlYO{84XNdup?IeDML6E^l>adf)r;1_O$U zBz0fk&G2$6X%aq}H<8Bgua_i3`NX)t;^;Q@1w#%btC0P5hMw@IED7;Hb^Lhl@wksy zT_m47{PCnh;$Q}SWc-heUSfGn`$W$RzS_Sm7(}*X8-EMmXPu)I)F@Xtd)%;k$CxlK zLsLnd${tIQnxSVxrD8KgVAim_6o{G(7{CNRExX|lHE0Png;uO<-%}?GuquRn=Qz~N zJ@5d@HX3CNRH^)DzA#MFff<^V_G|Tc4IqVqK+9MWLo?1OH=3zXErz5eR#!<(hXI6# zKtu?T=$>WGqd^jpEvN*O7^n!_umg-^YNx^9YA`;Jug$*-Xfbc4l>@rhWcH2(4%>^;4 z_J?Vl_31AT9!XSJ6h=2GBI7#ZGnEtw^*THOlRZuZRwP^%Wir0sY!R-3Bn4|Q1xEQR zd(M|A7Kpbj*U5qxy6}Qk0$NKCilHV(1F6gC*pp?3F@(DJ9pJDPU6Vy*m=FZ$${Zy> z3X;1O-8$AY*B~QpO!?8)e-ZP>l@NMWaaA!*>m7B1K+I+^RB2;L5Pvg?761oIMw@Wb zww}j^hAW+6YC;iFa@(xVQG);+su7|kG7f=j*8=ofnNdO0@^`PR zpBxb!`X$HvG5X&+LZGE0Td?{3`RO<+9~Q8sHRHy9)QpOoDu`b4kDGOy!(fPK1sr$` zy2tN_A{naSP%vwMe6>kKU~bU6p6Hy6Vfb7=g5kmAJv;~CWyyp{p|TMA&NxMo5h*K` zMHASb*?APV1}0qxvHfp?0a1E!a~lA0;Dq~}NtOf>=NX%6`Z2|e0pY=6G`;!GiH-x= z>tbY##yZUS>w^gXzwPOeW_fmuD_R8 zASsp%b*}Z9KC`}OM_~&YpnbZ^ZX#iZ5a2T=Q#KB z9(>#PZ(06+`5zB|ulxS$22nUS_6cDlbP@8o`b7py0-1Y@n0Y{tQkfLYW6n z9QwcbTpUs=_uYUS>lyL(Yn2_YY6bh5_c4={4#-Fp2E{Xu{{YV!5@Qlf8^6)(+~7h? zY{Mg^x&Hvb;fNNv!z4j_COA@0>AcaGa#PfEiWj;fO9BT=~Yh0faD62&!x%hH_~45|7y{uM1hI&VVze zHH_6w@Y7+HhCF17_zin_<1mI&uPC`Uv+T|UWnNZ;GA`~iw{?zW&5=Z--8z`-@zAJC zf!iW6k@fy}!9>$EE{tv51;@{xH(?_Yh>Xbo6~^t?Fl|1Ivuo~rdgRK`Gvws$(TU#v z)j+z_ZZzo~;{D0Qh``KMacb?xezDgG=g_WhFbA7%Lk4g&CCTA%=iasTo@{0gz4i4( zv!{;w6-Nbqcd~gr)c``7`$Avwk@n+=fS4u;J7B=ikJl45gBqHyao%Z<#=%8;3%j1O z6TE28BQ6Zc-+3d^bG-1QZRq4|#%7CItMliB>Lcr?=lpUIH94ZE$n&fiK2_lc$#EK& zIRHDb*OQbU!N-;O$=RHHIaDn}P7_LMIFa-7!Ymz454FRP%*^w}s3^As3#+`U;~&og zSI&%i^NYP`Ib@o%Csv_4P21}61g$kbJ@y`9zPbeqUT>p*$?sgi%kt^`nLU1-@<_i9 z2K5W(duH7M-_1;)oY+Gj92Cj3J=3e>>~QSQ1Rr}Zm*e;As&ODDPqb17$+-;hGL#Ks z;=kwbhl7?DXyt{85Di5#&VcjK(*iD^_k z1@Bk+L(eiohh@ma`t+ZCWSs_UI?k|TSn=vp1j$CO{Q>?zJWfMQTUFYwchDQ&crV{g zXnG7u-{xzVL_MyKg!|K<4daGG3<$$f)bqbq4|p^l z4nrgtLkap73tScvF9Uc65=3{Ny-WGxEdiWj&hkAzcJ%h<0O^+pU-$LJFabrYIwt$g z`gqG=HgrN%wabC?E-Qxb^ic-?8C@M09q*ZezS*_7!0U$Z$zL(rZvvN_G&Kn zWmCoDX3Pa$_&&Gy?}V)iuv~9Ftvd1EIVBaPG+-evtN6`t0Jy5%g0lshHSzQl4l)7& zk)k;_94A~*WCILq(%j=J$G?0_m^KC&Hz2vkdDnM{W(9$5GU?u52|F(s9cMW&ORKuW z*Tvu*C_7hM39rTLCEypOCZu8WGuz?0<-oRNnEW`v%f7w5q-!;pV9rC^KAhp7409F^QX=^*vnS6DG%G6KjN9!yJ~;qt_F&u{W7~6mgs3o8 z(KXX-_xgC6Lxtg!BCH4@E_+$S2}|_&ogTEfJ@GqN4(<5EA4TvEcnIKRTP|2AfJM$5 zBgT~=QzvfkgFZ5C=8Qqm%;r(6a<8T@09Abf7k&(1U%WiX?P(4%>fwHWxy_ftXHdr_IOzRlPq|L!-CQ+TP0pZa2 zHz z7Ujf+?bbEp=R5^cC`j1nq@M-v%;SS&{DlL*PjAMaC1WyctY&7JI`7AFa^t|lOr@Is zyaxc{krNq;+=Jxa*%HHyZz2Yx?)%SNK>Vg*fo0F|Gn!2jzB8u(0CD%y$~Xu)EkBs+ zf7?~jj=ZjZF){xDqJ4w`F2}6+@%(YrJ2FCJsXX`-aBetM4vk+v`kMa$j#{n&7=6gi zcdc(H5f)WI%qb`ArgZSL_B5FDba%LQz6BK^Wt~_=fULXdh3nDX*7ss6(fskVnv5^)w zYx(PeVKx&hwK_~ZcI%8W04tEC>)v&Ia#pfZ3dGIE47cbw@JK}PT@VJ!2E63rQ*24~ zl1CBnBq8IIs>XW;BckNDcL`1jp;G2%tw0Im zXRCZI_l_td0YRe~Kw(k$gNYh2NdXY1D&>LOz{1{{Y&?ZcYFxDFe7RFbn%J>01QK=xq!D z!L0h|Oc+53z!xlZ^^yWZjc7tBS^L1r>p096EIUEf zLQ8s?S)Obh()$)P6uLHB+~y-s#Wh3|{HM0?2WZxeuyNf2=c}#-b9yNsT5p_X-!&=@ zsAuD4{#n->p_UPYhc5FoeDBW*Vk01Dtg|@l&bN^a1YiJx7IZF)-H!zcQvd)jPIfw& zM>oDSqyq|V`KgWP*xor+Sm^=em9NLV=Z+c64SUYlVd=9~bHoKsj)Ms2vqSpd5vCMw zvDx)R_3&{bmIif?Fh0(;@04SWwMin!Qg{CV9L5GWxAmQ$9&Z%5CMjH=sjpb;3f>S$ z2?E)i8G4xS4ztWIf;_s$aL_}n@B28* zQIBs`G3I!~tZ*@&)Wph~1I786;x!fz8h!Ld{{YSeawzECNR-ZIkLsKavMW#-n+5#u z<7Wy~SRhSd$A0hyCoe*NiL;CRYj>m|ZdRGh#B~lcr$K z9Iz(6xIwx>?<)sTuz&N5*l!>Y#jcs>tb5^)!{ZKfkI!6G70nnuOg=tM&GHeLm{l67 zfQ*uvG8h$6V>Amgm3Av~5w)1&StH@arH6}*_nh(IrQZ8pD(p~#V97bZ1sCP*wbrKY z9G2D&5bh!&>= zRbv>zBRGc&5(ef1q{_A4&-Sex1j|;I&V?0c2qOitb}rL81Y7GnbRh$9+6<0v=5DVP z0jy10a%U5F2gS(A4@GiU1q8V5v+s!2f`wd|#MetcIMkc#bHq{G zMkwpC#<7Rq`A}A%KL#*Kgp9}E9#C!7);iup&-|taipd~v#zn*1*4`k&L{aQH1WG10 zog>OeCQ4-h^fL!;4e|1;rNLql(o2&hiqJ3}44Do~P~S@yk+@+HkzCi`L;nDErm)Qj z1r{*EgswEF7kaA#iWUXVvAa4_ks^~-NN;1%^ZDX!03iZOnU#dAdX41H5Q3u?j?DdQ zyTnt?tD4^%!@nz>aS&^k4+gb9ym!^(tYhIyDCEXXtqq}(+8%=gC4dAEg^oBE6YmIN zBMCOz9z3W};!EKN88xRKO_%{yL^XlULlJ;@iJI^;63VHLx^jQn)(y4U6g#MI5@zol zst`(!K)3GXn1(p2gM}|j*8a|@4h|O_NMO|#)&Bso`6}%7f$wu$bNb*~gfJYDxJ|0~ z=+}ig+bV;(@6qq|uPL75}w@f!sG-OB09_?-S0N=Os3$yA1Zh6F>r9o*x-Sq963AG?svwKd8dqA zLv!2paazXWTwudL7MVB2kx-3;v7pe)oFAFXBPNwfkRQ>g{qS-duX;S;a`_4v0MI0zBC&3xv$$3|vmIb4E@!jwC4v&rLKyhU%WfUUdN^^XrG zMCktjS})5T=f?!L`aEO&v7R|GSvBwf02??qWp$^gtYT$Wc)kZ^Lq2PO!JFaeoPxwd zc({A-Ijp~)R%?!kj@*8KNsbVTG)!E$0%vDqH;Yx>23T#MKEKWc0-#!$w8w}m^gGuV z00V~^$+{Y|Gfmv!1H+RZBdMo1*XM=_0}kDo&Az|mDK1nJ81$qJtKW_pMJ1ILRG57d zhrfIQD54Cc?n#14Ja{^N5mE)uQxCc?1Yw-7hGre~&NZWj z$eU{|WW6iv8emEg%mn}$F@}LW0~~2Ype|gXajYGXn0NvTQ?|N+SN(6kFjTe|1v|-yUh&3-unCy%*=N!YZ>$6qCNvYE3{cUn0h5Rw_p5bxgwK== zy2meIDKB<1op$v*yn7L37YUy!W8X$Dc!Z?QF+$=dQn#`2xKhOtM%*S(ZT8feytK$J z5#^}{dBOg9LZgza1C|B|XotTnmKg@ZW2P~2>#5VsK~Pv^S%p(cgZpAIjXU(2P}h2o z;o*@)SeUk?q0}5}kO3Tz13K)Lrcg&%tl1z=M@W;zj$bBn2K*qDgw`MC`2>A&vlIgkd&zxNMKt*q9b3l9)pi9#<{6mxds}Hwo)*13B}liMBZf)XlVp zeCeMrB28%0HS*i7`PR8KTKWVGBu0#+{Ba}@*~MqPNj*QDh(u_xB92)mH9P6Mp{h%o zIB6OrjTk|^h8L#YF%+0Vk#nZJGN)NI`3#u4?eU`UrZr2ds)}R5Cyc{@F}Wg9gvipn z3_O!aO$_Get>dg_a|&z)bG*4=@peomnXREz(_j+0z5^QONP?1dVqV8xJUZeCmNArI zKr(JNF)`w)20m*r(qj@6 z*U1r*b~z?I_pBfG5aSL^qEFKjeyr#)K#Brn3#Qi@#`E#V1i~3DG?Qax?BHaqd$-kt zhI~2Y5>|OCNo(b1!1-`BO?9_zYKtE4%*O*7LY^{bx_XkIFhwjKlYgC0KIH5e?5T{z z^G%i-;Q_9zqK=O%kNwXKvvxZjK0_zoZ)$LwGHzxRCVLs@82RAD9;=y$OxXVZu?S_G zlP-fG*zfnno|yfp`d{%KaH1BG?oA)}j8VaWctvvFE{41MZ&fBKi_v_(k6PT|!9qO- z7DETj$I$WW$P*SWEc4ZR&AZ_TCCM0xaj3 zT^G*%BcD|ATyM|CH^Q*$BV`%ipC^$k$puIwioHvEol_=T#Td4dGzWREUp3;0<&;oh z4sBGmNu0alDqy7)tZ3$$u{vKIV_|S1P2rA9T!i<)%|Ts^Uhz?hu*T;^B?w3+38Mxf zB|0~bIGEf9F7b!FEKbcjR$$2BM^_$?pB>r`Zf;$`5Se}f7kvs#kVRynxOyftpbW#A z1$RGv&b{TB`QS&4SoKtT_0-?zC%~4Wjp8@7edu?^C_NJe%*iID@sB(cm`siePjKDV zjPHCh;{O1%vRCB8hXa=Yt_>QH8y{bc$e_}uo)h+%)x>{oK&2j34zS7vgMY^-X03z0 z7b%kTpA6zIkTTr47U$dGgV36YorrBrtj@PyR~Z%wC*qZdx!XqZC;-+NX0oPnw|(+Z zWlo-jSv$Wt@XI40Lm{jcHJkwFTnJ%Rwk>#SXAzFy9C$gIo56wj3aO@UaE!nOP1`g$ zMDcak1yok8BdH*&FTB3`;IJuk;VRjdlsDPF3WDG=Mf|2_fAfPC!Azs=X&w6d*A#4O zZwA^E%+7xK1j&pcBAr74rcU@w8``Eo4xLu6^N!X_fyrD`W$1JB=)7Gug3ljM5>7MAg4=@rFZ=76=JxiwI)0F#K@=45S1Sj;4przsj_xPhy=z zdNqy(lBshDIB4d5XYz4iI8`%1%AyLWOPk6K@suG<>1kptgVt3-po`aKOb(Wr9pilE(_?z6zVb8kozRhp(PCzXC96VT`S% zo{nS)V4y@>AJt5BW-~tUcD5gA6>r2H!fmp@B;^P_3Ppt3?u+kRUGhw`jah|v_ zFbblifs+xY%g}SJS(q!l%w-MgchyKGqQeo+jawHtsl{m8sDhyAFc)GhUmQw$@Er(g zjTB&&FnDTUqJe|XO1b;|oTUcfbmaccXRYTP!3Z;~lh!|Ur_A9TA(ji&7z+o*_u|5($~3*@lj@#+4O(0z*6PkFEIPDBxTz1jVvb z`QVKW6r%PmAlQEU&k>gxV$RSt6!(vg10aSKRyxj4CcEJ}v$RmYs5Sii;C2i$Fpa6p zfTDl8qN#u*CwZIK`*;*~fGa!JZ>(b%g;1Bsub0!0J}5ZlBx5?sc11Hg%V;&yRl*=! zWBbwFG@l%EZmDJ=WF}{fH2n~$M`B_-xtPZ+*wJd88oguN){=aWAaueDZ{Dvg%`4kTIvBf?S(spagnX(X0sR8Tr->gVg5Qq#NfT=ZSc1|eCL1H2A)~Vy08;gkjKRP;6d;^Z3Z%<=_16-s80>}V zFj+dCH->IH`yu?7_<#O4}Ex_NEt@V%Y44BcF-aUQfq}_$#hg4Wq)Y;yvcT9+6Q&H!0#nC;1Ez^C3EMjV8pEJ zkt#M6Cu8maO8Z-k;KflG!< z*fCv)#b(qDs~j8Karjoq^30-1l_ry+Lb$US#{&|NY*MK-k6Lk_6b8serR&bVv*$dQ z+7yL%JpgOlTvEofI+}xW(5huygBQrhgFq8H@2kHQhiEJ?rX!WOGLr8%!yYo_ zn{pm?a#6TC@x>Q0l`O`{YT1`B)J4<-jDf4AnAQ}|9tc$8kywtPHU7_RAXOMt#T7V= z*`e{vg~LGkVm);ac=H5MN(ipaXBr|+(nbKV3|w+KIT?-s;~3-WiogJ}Wm9_aV>x)H zQn8mpBE4c;CC?N^F^2&Ss}vQuAgSbN1FE?^ZjrN~Cd~1fSkTUd7!rnb?at~5ngBBp zxHA+`C3MiOkWzryF{daroEq9T;e645ZA8~Fe%XJ^1-)m1niJY5c|gNyqVGL40%0_- z^g|x~Yncr(xcm5f)IVI_5)6Q^SoxUsw=WxriVt%+&Mfht>xtWhvtvgNy10eGe`idIFK!;7v|_7F#VDojN8^npyH?vC53i(+i%;*Ha0g9k_-gO|=m`t+RunMJvn;|f-1BycX(zXlGx&|%n2V3;uZy^ooZff#FY zY%(}D=eZ(;=Y_nUb`T0mq)(ZD~hojeChK-y*kT}QlLVV2C&taWkt#Qs2v zg<~!;BKqt<)i6EuMC-RZdh1+6UmeU{&$<5q915F98)h4#nw{rC%2}L3V`H+JTy^z} z!5iH)Va6SqT!&o1a;RhpftMX#v+=$Qk@cdf^$Ox=2D?-p2?kw?Dq|&h=w8H4V>wGRr1N{?mnq(l$A>xJ>pWqp zlqtTt6r1_iz5@h|&T`X0`f{_^04{`!3p)ZPbLH=r8BCC87==C^V`0DxD%RpN;^?KP zbgMppDBYfY z_l>0hP)JLHWM2t~rT30XleW3lnauO%c;*LdKryeCkLzA|g#|2d8Fk{gUx@uO1qxwY zIHI88hKl@ND5%J5pqt6_`Nxh*WC7Og`Uk}QoMUPM(QsM#i*?jn#H zK93xy1VX@e*E0ahh&u%0R%rBEc_0kj{J3urfFw7avclP-MRjE-6V9#B3E(&w%k44T$t!TQtDI`d3w^#rH{T6|oVUAW zaXfGC9AeR28aCacdh?#y!oVX22gz!k`SHXwx$q&ZtH1hi0trdKEQ1w#`7n_Z4)?e z%XOZ$0_i5=Ba^}}OQ8{i!V1AMqF*)5^Erw^ij)clAgqZegBOH$x?w?QO2_5KIgCc& zD6Q};1DL49opB~^xMW}$H1UHv-05y6CA6k?kUk%rYn7>1%mxfF*sP0#!LAK-g#hba z{{V-DAuc-ZIeM;R{y3m+%m$O*`g7Tc`kD%b{qkTgE_hKnbYScKDe+d0ioW&K1?O| zzzU{S4dMt@!IMGU%{dMl+Qh~k#~KW%yX1<2g%br3pvZJ?u_r^k^ zj|Gv@l-%nEc$ttJkj92`VIjXqs+k-Rs36bL8SiX;Vnn+w zp@R(X&3?`<90{1En^r06S3QJbv*#Ij+1mMxNW%*Yl+G*JH5_ycF}8ao3_2v_&|_4Dy-yZ6 z&K|fy6iSe#-P@n2QJjGsE+4}p++}9dZMmlxKgwvmdNwB~lThiepKD zcF{g39V>F|VdRU402syO84Q%xR_NF3H`7FfR0aWDZcCX)buM^I2(znWgaJn6Lo^AZ zkQ&f$-Z2vr$Tyk5$Y^opSQ137qu(L4xC(fH3+B*W+r&TyMTD`2-Hja*F+@jXR=aTA z9d6RWrv8m>AO6AOISf1R4UgC;?Cs6r_5SElC}SVFWjI9#xTHM+M*+V4W^N zF_0;4Bg#xU?nZqe!r<(wfUXF%y_)nJR#XfFCeNsY7a};TT?2|t}UkB9SRV>Y> zUqqoUMd|OAV6brIJcEQ&uCu{LUxVt`OX|;am6C{YC!t%1@%(X@w$72`OrHZA$+*>8 zOM>~6%h|p`K{1MmcRPoA{Ja5kCI$n0R(~#IjtKY!C~H~He80vUs!g&I29~kUpTWsW z(PoV9=2A1fy*#w5umc<6ei`@iIU%)WC{ML9*MF`op*A8hD^a=1J!juOK^O^JmlFUQ z<`OTQjEv6xs{YIzT%xtGJR>_VgFRz>Rg2M(I_}u&zPiK4qB;N)mYrnp!->9B6?258 z#mHkBu&xkuz@xCsBCfI?Y}L8C;CoSqVe?2-8=(8Su~S6L@`+2VOA*P83!0GxIJnLr z<42M142_MQjqeLC>={>l!BiR}bA%RC;feU=F%c%`Mv|BN*D%TL`+qZVkSB;GD#yW_ z_WuBT&76uZ<$RgC*Suysk0c7ZV>JH&wBUf;;KsG_Z{YA5dG51Ae_2`6=MYS1kqEihzXyZjuy1WXo*EQmY|Mt!9<5PL(3u<#A2=_u~0^y#OdEzd`@JfhzYyx(5=<$sdxno zKq2idaN!d(eM`zIFabVB2gdr-o64w6ro5T-z|*`1jp9%kq{dorF2mKwo;q-#9ucY4 zBWI6-+Ta4+%p&KhaZ_Gqg|cbZLTkAEV8mXy3q=jRTZx=Q_w~S8P`eJY3-%N9narut zC}0&+UMF!p@n$}N0k;!l3gP(csX~w?y=Dx}{AaFVmKkUwHL=C?!@Thc>|~u2to>%+ zIua0_<)*f0Q_t26a+6!rG{ti}!w<>BX1%p89>U<=f1Prs1}@<*WmhgT#dmoN(OXs4 ziUu-wHPg(?k`8l^CkzILL9JB@$ilC_`*pc44yg~{E1t|A~&K#G&(^Scc zX@;3|Zb;P0fBgJ>r-}-(>H-Oz)?dWjYLh zCGnj8_{t^pKv4ex&-r+&hMBOPWHh~QN!!Za{yjS({{VDLz=nDnJ{;CQkB%zkL?i|o zpP#8UIRVn>!B26(r}5_TAhQ}TksvL^m~vjzkaZ?>=QvVPsP$%Pn&<%5L?FO%J}1+z zG*F>5DchP{&hGhxP{BliE*DwfZ;R0i*jU?gGsNAKM*>;40QKAYzVXHYbavs+CPEGW z0JF*{h7Wyr_)2x{;#w$Ss`|w?r}*Rq6fRVE(n~--ylaYrq4w17Ih`+h@lB^<0_z_E z{{Xeb({MqdNYgv>;+~YTD`BxF$D!{nxY5DoZ5%NOM>y!mW;sj)A~7(Ig~H;p(Kyo~ z!y2Pxv)&&$u{6Rx?dHl6K+We&`}X}; z@mWpPQHu=d!(J0m05GVmqT6zXJZ2H-VMI|$adBYY^k;=k#s+eAMH1^L#yGTqCNf0Q z4V!{zsdgD5W)Tbnnho@`C{vgmPhPGte&6eFN}Ay@vv3YPue@GT`L^o3+|t#n9b;I>iIAbf$5AiVFK4?BWdTg8GBbC|ZhdEt75fW%Gozrphn`?Wn2BIq&wYmd zH-Iu(5GB>?pz#bJB}P>-L4*jQsT|X7;+WRDF^~&@4ucDxQGrqrY}Jh~dUG6)5|vDW zq!F3fjIMq-8T}Zl$(Cc8kGYG0AT?sAPffjlpi;!(W~;=aJ9BZ|UI!GkhhVJ}q{7{K z;ZBqa1WXJ7g6AKnB1(iB2qW5deujXvh#jes^dGmX{GRxLR!M^6s`khF#k_*BYN&f4 zJ$xiJrwAGj1;V7nh#SebDl!VTOx>?)oi4Drj6rD%XclauVvw2A-bSUys2iJ>`8i2w*QD@~rIRKSQ`&3SoEhPSQdU7D zwkRF_j&Vj#svc8rx(%IK*}+W&!C4EacMM18d?peg3Z*h0mQ82AEozn--_Os^e4Nnf z8H^9F#m;6SGsR4sDuG~#z(v(ZEcL`~tDns4)+cj1 z*A(QV=|({YALV^sWz=h7&Tm7;zCG~^;J`?EKFIzqHY*jrk&RBgWAi+L%Aw54Skop9 zJ_N^H$&hGq-t|wPK5;l?Oo2gmT}tQ2tm~4d33r@jg*wIWOOQFx1?bmPelzji?O{2w zETbYKRJ4~pV~JE^M?|)1?9F@2@Pnn0^Kv=UjM=^T=X+`@Dm8^Ni{*$Z}Vu1V_)QXrWlbq+y6U64u8l5Y6HeDI{B0Fnvi zH}$uuK^lb)<1mMI@64wNIan*X*ya3V-02EdBAT63@v)32e38lqWEQrul~ZO1Jv;=i z#vK(+XZpstNG>T&qe0yB$Cl3U^4G7jS6pJ{@Z0APn{zih;u(Qx*lb)M&KqIJEQ@n~ z zKx0jD1h}l)j)0(mr7Dqk>Pp1rMqv4(KHZa38GF|#IH(Rx->}DS!QvrQ*npOkpgR{J z^_~k#fXv7a9g8(9hrO~eK(fP;2eIG3Qs0fzB>;)xOvZ=A5Rq;F-aHGb%d5MDp zf(NYU*CudvH;hxYp00OzkO0O*Dw*q4)Z%GPXdQOOz0co#0Fi4l335BBay%VgDo_le zg>d!Zjn(A%EQ|&n@4w%d9MBFDUbSXzx#cvS zCiCkKXG-_)99R-S8!wZl`%E?801<*63ecge4a+hN|2& z1umBbu)z%03!elYf$LmGtwMqqqblLt&NvETH9$l=7F>s#`y2})eVvnG)Zf=Bs0p(J zCZg=`IUpp(5h;k+Ch*nGUJG~_&BdY?*l$0qLKBE62<1XjCv-mf z0b3g_BeT^p{&<0?h#@1SaU9_!P3MZcrsN@hNY9b?t~Nn0gu#qle)HFZ0yx9uFu8}$ zwXP*2p4a#=za|e8l=>SHRr59T_e+$(EiLO${rJq^0A*QDrfx^u{cLsi(WZba<#->xHNV#hbmcLSlhl+OUk)=gdY z=w#pTl#etfPO7MfA4}jd^6SOok6f>JdJbBgPvehGv z=YEimqb5!QCjf@hlX%QAm)XL|iu6dwe<(Q4Fit1|Bn&YZM)gClL(3xQk`-Q)W;Sp0 zIaZN&l6s4>yX=|Q7(FIzz`3Ttnbr)QAcNo?O>fTn!Cdl{Lm;!KGi1llxbO?Rq)jN? zxDT1?aYe|e1RoDQ>Qk(6Ato|ZT6yhfY~Oc)cXu%veqYJs9(XJQV>Q9@M=qz}<{arn zXriFW!YWPVj?(f3fMrNoV}Cf2?Ml_O-_|2aTn?D00tX4O0XItMJ}B~%6Jilq??ahBL#Bz1+BJ*#Q~wSUXd3k#L#h4xxi*yQIz zl`NoVOw=*92DnI$v_J+Xo~-)64<1d;a=t!MUYIdE|{rAz?;?W_%Nt~lU;judl1 zK)Hh{Wt;$%80rkOU^2xp_jqT4YUG%?Bc?WEE6EH;nABso_cF})%>-3yXau+f}uqEzV%E=7`SQ|}xEFF=M@rw6@s((y{Hg@G(U_#)(k0OeH>C^V=98Dhje zjt(>e&c+3IO!YF_Yk>qGGA*U^wi{zD&q^Yel}vPP$)!;DW&orU-*kV~ z;ONT?Z)Bd|Fu?`kcQ7LpY=d;b*WP#vJmg@bX+c~VZ^s#&0rDv;u7^~fz2Aj;jLg1leP42pzuV@&yH>~MLGLb>ZZQx9JI{$~)P z3PcUqUcC3$*CB`GwMn`+I(gw(lmt&_yyp4u=7?PZG<7N@Fz$N3c?+h(i9@3cmUID^ zTufm|SIe|;OrHKbt|3gZK6Z8Ww-WG46y}tsWXP{@y2q7s2;^19;NbP+aNz@SoUz(@ z=+3 z37Ml55&E8ZnZ-_*xt!%4bkEl*p*x)}Lp$rvFISLEl!z{9LL`w4=EvK{P_;5A6%b~{ z5LLMGl`-}j*0*Q#aOaR2NG%1cnR7C%^My>dIV&Ru?~_gUBf#E5dCjx0A06k`1tE~b zEcn%zKw0Dv;z|GlJ%@P(9SyFrzyK=)6RyTv42LWV@|UZotnGxsnS0LjR|#pc zYLSabjz_--1Rxgh%GPAX#`;2Y2Lz@{hF;On+j^6g6pCgHY`I!b=LcK>R8tuU4#LWS z>Z^x5k)q4AlrUV0=kbm(U@#%35gTQjz<1XzB83QrbmKb8mrUSPu#^>H&!amh$l;GX zQHnV8CJTSTIB`b_O$(dx3hAAC3XGmkQ5o*yuczmOb!ibQR14Z?uZ(i$v#?A!-M^2+ zhbADSa7sD&JfZ&9ONantB*tsAa0Ke9c!OEi%jkCbxe~z5V!JvZDDykuH zh~4&M!pJb;*SO(rDUP&q!O_VG^{ngX_`G{XrqIFHpcprQ2O_ZzqLAXLDpHGuoGD~A z+5(KHD*!4(Tu_`e&7|rS>6`H(hmm7Lu@9KVslR@3$YTML`KzXX(BPuZ!83`F_3vk_ z@E{Zdv)-}MDt8}_AOu0F_&HdU{{S`4z?ZW|jL4YpRmNTjLqLkU1svzgqlArW9L|N@ zzbQJLLjcwY<%F8Q*D_e7K^co$)_x`q_`C!mk@bu+O}@SItAU|ZA_?SZk>XZ66vd)^ zByO>H(EX!g^ElA?&q78Oz_Fz2lI;c{*2CyXzm0P}fv21%Nj$tHKFzsxH<8kjJQk`4MX|!Z?BFpkQ5Y#Snk#hTxapbi9v=g z9jBBxA-wH))G!o=Q_)K}j02+B%3rm!`z4oL%`kYMIRO$sccYHV9 zgn8#<3QR*4&hGKK?>;rYAwrTepn7v8`tx`hRI@KthW#FQ z^Tj#JF%=jSK37w(bBA?dR_?OLtZOEesGye*LpMBYQ@mbg%n;~v)pT}zvokxW!#G;{ z%zWn_1>uBf2NVTTJ1#{W1wFERL13n7lAYpfn-W&Q`eByVXBgr#vq{?+2zB-58{tAW z2E$e+22m`jlN`DvGYhscA8LO}<2j3^jJPbpNhKV-u*IX?p+b&KCyaRG%$FoF(;t+k zJ1{%}AW<17%3B^52HZRX(J)>};Cw7VlKt>e#BlT>V|^nv@nC9a1sco>eG@yuIGL!U z8Qt%;e0bf06;w0=w+?W3{{VEu08G-v8Btl+tm9mvT?FY&J>qrt??O}Haj`tyZkU;_ zuvix=I&}5nzU91?5((V{@_m_~eZd%;Dh5sNYdOx(AY0L$c!9h_>6ti%TtXt(Onlz@ zal$kf?9k3kO}P*6JP`oF*4CLa8Mniyorgszr;Y5x)%bXztca=9wAfakmySHkm2t) zy>ki#W*A02uv4!d4j{2a=o(~FOpNy~_-VBh8^_`A%*W3YnzJEtOfNCsAjlynjw7HtY z>SMM!$%ccs9d3V01OC}&H_0^fbL$?G5pIP<{K@Q@yf~C-v^HWVpC@GFPX2^^ z2w*Ngo+@M%1=|Mg@Tqeh@O24J+F`PhE-`QpbHWhCJQg!0`kB$w%HvX*05Uy@K5%r1 z(BK`2V!#VYr{%s50EG)3UorICa^Ag=A_hUUrbgGVYdYZuiH4Hv0Ma;ICG~8C36-Xm zLLMpmwapkJS8i{Y&r=(`L=KhM*JlPFobdz&ak49!uY242;=xsw<&HWH?A+g0^jBqx zqzsw&yc^SzI~HZFn%AEkr-+jcg+MM;@V}lYtDRE&$KLv8KC*;Ru0SJ{V~5x8l^`zr zhpopBzW2x|jXJapYg+#Rv~ekgFdgAGlM^$}Pq?U%4DGL2>smLnJm?)&hhSg)cfBR6 zQ0Rw(Y%uLNdYD2%AT>u`afuu5{Q#hkt8B-A3%5DP8-Yg)lNU*Cw50GHC@B)FLG_Go zIrWVK1oQ@>Cwm`F@x=q#b+Z7iqwCe2Aug6at`PAuw_o= zBg=XbRs8<|C}ahqxtUS}k3IP)OmpNELD&8398?Cu0La`RE)4g^R5gGY2}%rSC^93Q zPBMbVR?U}h=iX-)GJLj$vtJqU=YYRKU4LE~=g$-bigmryf{58x?&I3Z`PhlkSK&6F_z|J-^{_mimD|t%G<1C7<}8sXbxjU zrJamY+&?cJDAK6FhyyyymTNbNA^{DGq?;A+_dTGh3ZznrUBr6_#`(38#XBUW3d}LF z%Ui)bNk|8!4!2|De9XdHxyZN-M`D}Y;PwY5^gq@6ah@(mV(Av0r)GPa)#8t!l#*s> z$^QVE=f#`@mtFNcyZPcWGP$w*j!b4y$JAuBAp?DuvQM78@DOfL*8UHU{{W9Ts#MN& zfY^-n!I z?w5J~yWfuZOwj}G2PhMC0iGnsyehAhG0^Ay1;uDm+t zKs8KwxI(*zUq2zl3P%1ZiTE-6IpX$~gCb0Cd48qIdq=?0f93ek8gML8!ohRvAHMiV z(iH2{>sMdB@?=vD0enwu?HBR^MHWnrXRPAqAo%2<9E49v?>@WYsZe3y0bRN-`u^|I znN6}`bp7SU#p?i}^oHQ!_nYI00Z11(wbMfU`Q9)T+(kK$qB6cs7~VLItGKDq!0gUu zapQm#!A#^f=cWGKtt+uV(Dj%eOoXWiUgF z+kdcqaao&DROt1eUVj-CY6~8zbmeW=&c0fyqZ3q=Mi{B34}84=Mlo2OhUIhN_)tcW z#G6b?mAVohNyDfD3_7?Bn()nm#-ah}V+~U=uKZmM#&V@M9nI=r`8XuX8#jZlk+sfO z;k#Z_Ad(*>1|R`m3BV8_0+`TNZ$PM0)2Az8C=#}20abnf03s2b7BB{cAywWc&XwqC zMnv|FusBEw@-6_U94}xE+<)I z^k0ww?b77>oo~M~%y3F_Tjvs}DdK)Ncw`B39IMzFxi?JmSy7DI219xQ^z&W?V;x`- zxXH|p&%LKE2H4kr{J#gw$qK+kjY8DMUzN;0L{b!q9pNcrnwejy)|?2=1`mEZxOWQi z006J~90~pY$C)bB6H88yKNjj7AWa5qTkG!rXAZ+E&LjTr-ivs|LvVEsg)f=<&ruXc zT}AtMmqkN-W(X_&gwMXQ`J5_Z* zd#I#Kj5Fj(_xt0Z<1pG1Il$~=gv3q;30eda)5HP>OTBP8M+u0iTq7Gl&N!b#7)X48 zTm{8BFyutGrmtkfl?rxN3Bn;MLc&%w3W4^&QICROuk-rWZQueI224DB9y+_;f}kp) z;cis598H?>!0a3WcA~PsIf~8%qO!1V`3-AW@^H0Tgm!xW0FJl}G5w#onBTrVnU1%z zVqi<(_r=D=c9ewA=l;1MO=#6a*FxR*%&eG0dS#28{(r_q*!e*M*i=h}&hT?#1%NbD zCc1BB=hVj%GsP7uZ}sREY_}r@dMurQo*}7A)lw0tzjV@ z zz4zByGMON~U9-gp_4wBsFIsJ$f2V{;LC7=)Aa}galfuMygv=CUFq^f$$-vNkI3ixo z-q`)rkVLDew_OXY_2+j}wTzk5b>Uwf4d65zi;E!Q(p>NAV}fgMZEkxz@$Y_>z|x z!kLK}chG6o^T=|PVd->R>$4odYsn;b9cRPw#6mL|n8Pjc)7ov^SL*@Ems51+0iqYE1Bjsm#Y9{__ue80x{rBDh+f(=WTD>c`_z)fN@fIF}qb>Da! z9SbqCsPe-*Oto$z5IQc^ZG8Z=fgh0sge(>TT1ud_%eHqoq1(_Ps{$318SCt$9gAFjTuBLMgo9AmtrUry9 zvb1ffGr%!wBPa@nfdZ>+?^qOOAhZ=wWyTuAwsFWLi~)$9W>8rB?~uF#08C-1xxojJ z9ssa>ssj&s&LX~VfB_I3Z@Uf0_)k0qqKjCf_$M43j{+r*ktW?(#OenQkkx+WGT-IgvSU z7>Vt)GLN3RRg4deVo57{nal5s8eFN+j+Y}8y>9csMk5-Kh$ptpU{`#B44%jcUh40@ z@17Ngb}4Yv%*-?Qj#4y5z^gf_9qci}zLoX*r26oaTv?fXw=FS?GxWXZh*6>)Pi~5o zkn@u*S(w^2T<3za zasWqZZs)1o`N>3W0hz^>-OjVSobt%ofGlQMh+ogF@wnqmm{rK3425qj6b6i!7tE=1 zll8*otr5?>e_h+i%1z|?-YxpQn+_%RI->n{`u_k6!RD{ej@J8JZ&i)kkcX^XkFLlOad8n^!IG*p*3;e}+r$ z`0tD@j$|rhT?hOR6l6A4s)Wme>%X^{K;n_RMkYy&YU|e!E6zId=hmdZIXJ-{@NQ!3 zIQ?E@u=v9~3UxP~aY&N})RC-+=lh(DhREnKgnVU(UFSt8p+GaNJu$CcQ;{kGAQMs$ zYFiu~H9>OV5(jrRUmau3HVPRVkqvdb{5rVIr(+hTMT0^zmQG>jXG=K-z|L0Tdq!Z<|3Gc$prc8*IGNAb|> z!NMg#!?BzUU6H;|#{$hPJ%*IjG!dB6>eyB(X^7ooowwCTg&+l%$Z3^Uy?aL&h6&jK zVb*O?x-vV7pa~>GiKy72?bX4H${1QhlGkE<{Oi^>9F8yuQ^ zv(d;yK#@FJ<9L3(bPzB(p)tF>)56K;kVRF-^D~nn-{XkPTE(U#tRrC|@zWsEf;EgK zA=bY7?|@JX3Pjrohh6y#iNcFEUyOY}pYzNVo8MXQ*q(ox!NSzYuH#&FNk7L0c1WHx zU0pN3lXxWz1eS&u&c+@swdZmGIz%!hKsNW#Nr4IxmJN#)Xzu6`innT8ZZ!9kLW zc3C^~!ZEK;oNi3J>D0}{yiChSuFxhkeqOnxA4;ig&Ow*>c_keU!NNnwh0fP=9L+*j zIG;v~(WAxUjj(1?sf`O@VRMYNAqva$mL#|xy~iNwr)YOl_GAr1@zv!(X;TSt_IP)+ z=Jldb9@lncjjecu241U3QrS?%T=62Sa%o@5${8b`wYLmBDS>SpZg2131qjOxksMJB zMDJH;44f74#qP`p>T^I% zYymyw6K5%k3aTc3K?dLq;4s}oTUoc2&3)r@ia`cD%iy8o&TpJ@NGxgwUcfbdx{m;K z3xPwDb$9E>5{d<^3LbT`=+v(>PFb~5(_Tid$Y8o8prTYPt{ zoT-MCNX8fH{JZiuflr(A#mm;a;ZZTuFi#R)jF{NvW!3LrGlYrA~^0M@qxcpXOL+{eZ7%Usk< z_T=v9pXW1*EOJ_*U`$eFwtF#gxF};2zOVtzHfpB$DOd%_rMVkb+(pe8apVf43Y1G& zb)=3!cr>DorIB=w)CF;f#sF&A$`N|nle2#s<%XDc9s4qe*ROaFQAT7e3}y*~B1)7O;jF>4lZX(&LC`!M=m>24;N{M!`uD$| z$GFvD^6U+mK7Y>mSOB285+;~!iD|i;e^_zvPp)& z=ZFUo698>e_k%q`<1>JmZ!6^TIMMRwSjCJaAuf|5;>YXq&R{Qb)$7fC>TftWq6Ddt z1Z|%NzEz{l2xB=1A=ULA9pZ7XPnmO-&`GnN6{(2H{mhlQ>RVpS3x3_59}T(Jef*<5;&fA^U{3ItNENzWn_^7f!GY5^YfksvDAUqJmdK9#}d$61EOwEd46^0iGazSRr{ttJ$<3f z%-zm9Uni3GZV6E_fd;|B9{xP1gK-g+{5>9^&hF?Qon z=pX4gWE*9LN3xbB#-ew|N=wNRTndHN+ixtghIR%HLZPx`WZX?*APTd@w;I+AH#h(= z%G9y-tTLu9rZ|MdJ5aVbb3J9eccL6ETayu$+r8toAwtFl@(4!NLLd$YGp11sA<@)6 zI(A|=6u@wzg(2nk&n*lrh)QhiVjOHY&I-u!lYtmytY@< zPYh)|{{UFH0xHx+6C#Q(f~USXW`)uO7e*U9a(3MhlpHaPu{{=1Kc!tP5QMHZ)JvZ) zeFz7X=O7AC=pFic&m9<&iBP8G&;&L71_cI&E{4Ms zU7F;g8WX42SW)U##}sC@JH~g?{660DWdbo1HVH1zCp-Acl9Jp4L+a1#I^jra89ENl z0v>RS`9hflaw9u&JIDPvn>_B6*KCoU1erI%fEFpy%DA+V!px`z9CHhOT+ zDzA%vJim{)6o#AynX9js{7mD;hZbtmvb$^N4)e-D%@f=@a5bh&_aZo``1(5d{QYrj z8in_rHywY*R|kGV$(#N7#`sbS1xAc+IGuY(cTOqk0i_U&H@_L)_KsOXs%T-ZkJfj= zPy&e`6Br<4u+r%8P)_Pcdh9{N+ZCtpu3P#TTtl-nZ`2HMFd*LxY4R4{ z&w6rTRlk8X)-YEK-gt(6PaDnxf492whBq2XTGUTA{{TELZQcOyW{u&<@9&DoBR2tU zF`qLV^gI?qHz(Hdr}JyJ&LW90t(Yq@?I*-;+tCFCz(h(pU}wGW97DNg-&yXAR z(FQV^CGj2Z@yYYZL z{{TETL@J?{8)rj3{{UPFRBjBU!`^cKF+04b)!s5`=tEv3emPjDk5|R=yQH@s5b2S~ z2^S}dZlB(j)>ctuv&LyZg{9&E8pgTC-23zI9yldgk%L*s?yW|39jJ;>xG(Y2x z8B{xNbBbxk!0+ybN*dZYi<1*OZ;U)TIA}l!ImL)c)%)Sem?z1)Bb?1r^qJzZ3AGWk zHBo{K?Jn)cX zikQQpi`L8exWH4qs{JZQ87{c&BLW2y1ObHYL&eO51_RkfPzYz->n9iN5JxEIPDOML zI^>o4Fe9=dL|qHxV4;AV8bK<|uVj7BI2We~TN0+W?k#30tQ-?R6_kspMNhtIz!^fK5=Jm(&C`1CC1OYt%M zTQfLNkS+_Zvi)69k0GVEHdPO*U(b9+5>V)ajJU?(h~5HJPgK(Ev7hM~%BrLjd{vnUPeRk|U*nmQ&ToE$E@cQejBM%({HzjC7JE zI=iP=uN)}Q2PJN0gEQCHZwnGZOht>MbI0O!%EokFwGSKfFn)wE$eV$nW3zXEI>0o{ zz@poCu$#&3$20KuBbeqE{+N_@o>#>@Kh+B4nk0VTf{-qWg~O? zzcD$mqv@Xi0Ij#rCDR0m=0g13T7zxO94)GHKfyGw$Pn$#f~&ZELsrFmXAAb{cgrt>pJOOLlDx0|Et_-hL^L0W(KF zC~sHw__*d!l-|&o&rf*Af0bem2USwz{8?^jJnV3+gRheHH=1W$fI%P}T>rUcOnZa>k|JEyjOvmG*H*E*Hk}dI|CCr-lgb z9`T=yecm9Tl|wyClg@3Oc;5+Pgn`lv>ARVRHR~h-u&CpB8$Tv)I^D+gt@xYK!h{krB3iQS>u&R+7O3bEphqBDaF%^Vz$)uy1UbW(N#uil% zYxEF}_50ujeSU%;S@Y&vsYhm?>-_Kfpe(Kb0Hpr_-=0XJ9AfAvj=$-gu(c)|G)hC8 zWX^LB4v=4@_|DBp`!m9r?T9tCL!)1Q_(>S7jE=@abQ2nO;;>^YkPjC}VtEIN5Zx;P z5+xp-=trdqr8=OC?FZYUPD+CFgpUBJ7{oj~b1MQx%@@N3x7GI7mk@J?nnO5T_2<7k zHC4J+JKly35j+=xYilyi6In+a&z$z>RJkTG>;amXUb@l@p@A z7?*iN1bTd92NXy?2utG^-P<#z>budBJ_T}Nu(9>Z1hOG6Z-fxs)k8R!iHs3)(J@E{ zP;E;3y&{@x}0f9v8LM3Y>)I! zJQpB2rNU<6I5Us;cnr{Bj@7s@{O2-uaPhIh(l-fkF!- zs~2j`l+I9aKrUz)3x{QTruW1U3{KR+0^xHj@Hyq?4#G?gV>$G?yi^dSGyqv zyEw&DK=zeKx%2z8n-PT|<|>$Rx%_S562i&`&+VsF@t}ftb_A%0i=)@mk?>%A97gJW_6E z`S53(Ew^7A`rfhUn_-fB&ULG-{rH^D-R0;XUHYtumi%Kp9g%S>-~hdu z-!LGe21IYVhrFj+*C{;&q%cs(@Xw6#({BeLlIM><9_JLJDd^orF1y2vj~rSP@=zzv z&F$f}(q*`~iWu?S`o|EA6b2H#<;JiW>%IzLNoq_!2jd&gb#emA7{>LtJ-)-H8;~Wa!MvR4bPYt^~FQQ01HgZ@&N$^=NwAWbu+v;N$*4q`V*n$(KD_1-ly=> zxLR-7{{Uy_i$XmlEHoIbF#h`(#Sxpja4w$wzD(W>z?F-uvZJpV_jka#Wrjm1C+2=W za)9I;sF^yudc*9HYLV%-K2`q!x;OuC^gal;<5<1|*m_dy;?twd}$G!#_ z23(3`TemOG^TDP;jkO#%udFz3g0yGe){8q3Rgj^To*a%?^x4_ zid0^rHxBXV=Z!$%bOxI>uGPgi=Yne+DmpC>Bu2V3tjw#NATT{5V>fu4Ny1TVMup7t zjpom}t|GRj_({+oIJoPbXptOi7>$H|aJAK0H5VDT>*DZJaTgiyH!)1-_H@kUk-K}( zh0n7dnZg4A;bW_Icl*}>xf4ACwS8(!jv`U%?00I2u}sO z&%YO`A1cAH2BZL_nR|XB}&; zXRb)Y7#Im^&-=a3T45m7K%lu$!#gpb93(KKSgN}z6g+3gE=07+%ZCFP2dsaLmny9n zH@ktEA3-V@%ftQo9^D&sq8G&s=DrRWu-e#y8~O78=Y3zW%+A^L+9g zj7eSSu`g3SQ!ji_+?#GHzfkA%lhGFuziJ#{Kyz?#P`7SuJZ?=#o^UQv9TW+w8+ zaPJF@-h7y9d41JkoZUb;(0~MlT45?4On7{9Afopu8m$MnH>_|>8ME@?y>IcK975>$ zC7y9HCTW|(3bOVA*yY{7zp>O7v1WsF1?%fw%2zgxSi|+-n?F10Z5f=jd z`d=;>0T}4lx@U8DI5Kp>O^|##>sQ`yMbDD}`djI|l`3C=!jb;~+#NkuB^{A5 zoZ4a=yUGs{RhLJ*uD`w@y>wG!+uq;$aa2G?k97Y4t~EY5l6%NZj)5)^!ca3_c>Tr`uy$_{vJT*Bf{POJ$?=f zl(0cc0ybsGd)&sj0N3D}M*u!dnjZY|h`?b&D&t6)XY1_r@S0Ce4xpL5&Qf-=Zhijk5z|gg znOlRd`kx#ZxtKIN#&7z)@kzFHYM);A`0=MC7=IUkL4O(!A_QIg*z_-l_VFeNpyua! z`zss$@xW7hA165z=3wEfE(CVUM=5&T--01;U}KCaA4V(slP65UsdPm2Jkh zY%+L`Db$`Z$cW}u@r#b>Go5^h(V@eat3C{WKPrU5C0u3y08F0y;6}TP=)eFR&$@Xy zN))aI`p3C1jyaE#dp)|fMFK|>~oynv;1-ifbgwtFg~uc zFz1DEHZ^sia5vqZzdWc46>4Nv%cMq4<9rGMA)C;7Fn?&57~?wLK5@KH$+NA&Jc=;} zjh(0CA=`(Qzk@RpW_vpLjGPrJzNr$(JI+04MkO*BQwyh=?eXXDlE&ZxT$jerJN!IU z6oOlnb_R=zYWT?nSOznoG&$)^n$y8R*jgyXOgX-bGo5is3y}}f-KWuGdjKdApuoAw zxK=9I`Z(+w0WeW1i-2$ba1iu|c@sH;51zkVa;_vXu_2uPz4Z<=4p$<{g01fwv1`6< zFp&%fZdyzY7P1N6J853a(QzIcil37w9s#-zV z&@WdkMI3L1k}9n74dmSFz{Wu3kjQAczL`wVqdsCa=EeQIwMb>z{7b|r6f>k zgpCMmH>abS07Ejv5rvv!WBk(#kqpxr(lTzXZQ_;C0hDsKRRSyX-ybYV@o}2m8D-mS%lTYk+r=6|(m4l@L-*qvU>Hs5quxAW z#(tNI1#R%)1FIN4{(SOk88TUb&K$F;F`faWh)gHcM-Si63LD|1TpsSVzu!8lKnyx% zThZfxjuRuiw<{dEs-A7vd=OCu$#bcK1Lqzlo@A(d0+cnJu*2s0?1p0?8LJPD_qNRW z-yl|8`XTV9F_#_g^Pnk7lOB|ETzwK;B%@4vond|U z=?=J*_C7H059jsH?b3hK+wgP#pZAWq;09f>>%Hj<`<-x?cvghRLz2gSFn2iV+MEN7 zd)W2!e3?=;R~c`9Z}&68@h^de0b)d>rl%nC30N>@20zEScpA45BF8?{-VyV78U+m? zy-zY@Z)GvbGz^`F={wE;0J_CTUzIL1q4$3Hg@`1W&OFQ)<2@|kkD!$D1@K*mPT4Sq zsFNlWKxbG(3$0-zyg1CnZY1yOb-pM%0b?`gS3Q*bYsCGSMlG6shlTBCc>sP1e+4GC zGZVvjF##pG7AfU^S>4X?jbK$xDjD-s{Lc=cRwxIf)=ZgQpXGK0Gdq#fighi|o_C%)8nN`jp4$HauJ{8)n-n|66aF=~ zj2zqmg{F2talLkNwiu-kM5R6F*%`oaXQV&@G$==VO}Z8_u2zea%H_VWV=Oo&U7_Tu z{{W~z?c-x9myPyX)m_MUd`BPbTxkmnE0vhT+qXgX4-JtZd%!C(XVycJaeCP{Z;$oAtlP0D^ar0BGB{ zO?2;EY_l^e;EL%8Ddk0Nzym9R3P!A{8JqK+=z}R)A5o}Ohh64Pu%~p$T{<3u{!a_b zqX-K9;8|FsiglBXx;+$Hnf;D~QwIfVmI1u=;h4;x2OJtD$-vDm9Qi&ZIMWNGCSbN0 zs%qE}@T8#eS2Mf3zmL((iX!Ece+l-#IrqXj71QMRK1}zwDLIgn4CE6S3RiODs+_18 zvkhup|U5~CcawgDN{#pe0k|^_r}Ks33_#u1pfdZT(H0nKCLY|yCQa>bbcOPAHND1A_AnRwn z`T5{z`f9z*S6%8Eyo&#P%gv}Vj-MFb{W!U3n~9(I9VlfqScm?(qzf#$oyC^FPVUE`tseS(df9Hf5aqP!RIrAxho)&X4wH|!`0NC>I z)KellO&crR?|n@2z;aStx>rzYW@a0lKpDk_P|5cAxSQY{fG{IEUm5*%@yR=ow7c#* zJ8$EBG}5L6lU|)r@!-w0771ug*BzzYnbD_&L?(6u>BSrBrY<-VmX=Z>GvAw%ek5Ot zXrgOqkHZTy%|!;WRnLqB~#LDAx)^ZatvX4 z;PhocHJ9s{RJi*d{{SD1MB;;#zyL%L$um7}aXjISl2SpRCRN{DS5qSqj<8MswGOy| zmpL-7v4Wd>-@YhX>t{&zD{eez-W?&4D#OlEY+kq5P=JgW61L96SGkS}V-s@74fY1he;@gF-np_xUY>g4#G2zqQ4p)d&WA*K&UI4z{ex}?|vMEL^6QdfZoAB zM+hjOI64_llQY+vb6`POMg&D&;AeoD;XqN2bCxA$8X<;0gPFUOGGa(yA0GFs`{nvRZZqrGpMH)}MeTDJR2MFH{y3mP0FH4_8y$NeU=D$^ z4crGY*`AfwI|?eIPejXQfa`-RDVV8;THbX#+js*Z7@`7abh2-M6O(s}0;sy!9;tnA zfesl*Q*P)_uNS^Fw;eCUCDuQ_8yR9fRdbu1wXVK6>OnBmuPcb1%=_gq1xB8c^a0pv z*hd5a(4i&IS*0hBtHp;!rbeqU48M)Cjs~ur&z~9dRY94+ zGamb=tEp!LBz1{2Vo@XMSf6~Lw^{G=7ao5&?LdqO6^0@c4sz^HH5m6T&bQ+@F}!D( zM35wWZWrD<&(9QmO}YO7ocro)fvUZTGM`E}3R#SC8=9wCjs7RAz>6VFBj>%@9CGWk zV3Eb_!`}QU#x@Bm+5P_j0h;TH)MG!KNB;nSX~BTTaNzur%6{81Jq)n=O85OO=d; zCT*?)XY1XA0jvm7#$SfAYrU&(X5cayS)H<&TRu4XDAPRzKM(U~Jl{J`zzq7acDv&~FZ%%gPd~?7I>uo1y5w zS701NBjt_m;vM&-MY(V!50@C2@u!7auy@<@M&i5vd6`zNZ^9MrI{Vti)e!xGP{k?lN}E! z68kgWvUeR%q0b>RJdS5zA!cTO&jOpt?@izo(x3vSFB8L z!{E#03>JfjSzkTnY*B%Q)C*B|!Z;5709&NqXq_r(`x0K>OOqJ!{{Te%y12!)1{fCS z=l<5rhB&~rFN+tgo%r)PNVtNC3Tp^Br|Aw*3s~8JB1@Jxv*x+3(R^CnGH>MeH++`B znMSSklN*MtcxI+GO5&qPmp8H)mw*L3q=}_WrnjG1;hA@#8b&g>CKs*cy_=*5spI&#o=j-7Dro(!Bw!Sl~z(TU3kc=YLt$`so!iP18 z9EoYU!l=&!$e^HMQ5D0c^M_XY;L`<7V4K1Nf9-R01f>AE#-putI@bmO%u$Hi#vCVd zb*MaWf?|ecrNN;$yi93|>=Pe2K8NP`@BoDZhCfT#WWltOaEEH`^8ho9)jtYb!X9irtJGvq-WByM*q$U%)_c=6YJ zKLHv@SmEZd=N@mLJX@_jGiBQ}nf()Fpviy|PU-Hibc@#@kbzi311dFVX4iaRa$v5466Axth@RHsl?iMXKidKNbmc2qhmffaq8z9+rFW?n57^@$%4VH8{YV#gbIbD zK|!VS*V(}W5ps}Bb~y3;9zZD~cLU*X%M8k}0HQRbxGAl5o0z`&bQn7Vca8VB$R2os zSsH?OEOACR$vd+ILWxjCgWKmmJ4*3#4USRq8a^2_tYfqc8w;Xi9bVhcoN&&zDpnIL z7wyk`=mIJ^m5Mqx8OQ2N%ms`~7@>>j?Dxk41#*LvUiA3?051qEiuRfDzq`|4xiqQ; zb@rF5tWNX71r|VBHOn5t{Qh{UQ4lg1WO2Rry6Ukux^S2s8=;@UjANM!sWTGnZLI1y z&lTMp*0YgAJqy}!01AggNaQBwsqo4iQS%TM>|w0@8D{s(viKkd3;wKk;vf~5DHJKoOm>eW-Ul@7944w(?ZmWomq}p>E3P=5b4HzKb|%f1{sdYB&cBd&E`vRU;tW< zb_VGRK?qBs2(tTde|o{C;wogr!Ug)6OyczLDvb;mDf95ne~G|Ft}@JH7Z7MgzcVhsbl2 zu?541e>n~aWK>(?nT=?fmFtQktm_)lN}nFSmMB1TkiBOLy4>zO3j`Q3tb9!W03T-v zAVBUpX_h2M@OElgjs*zpVPcfWh2>a8m01UV7s^fJt^f>SgV#q*K0Y-$La9VReguWx z&bOR$gj&^)GAFElzbtdm3V||A_vhma-xpyMPTzI_^}kY15~Gv9S9A=W^piXR;c;{U zyjSx~eQ+p7WzdgNZl)9Lt^fo(WE4kOu$LbsndA*4h2&lMr^s_47%tZ4O75AQu&?rB zTkB_MQ-lx#V_Nstd$*_80M$;6@O)ngh*lAIK#~O?|>&PJE@oSoLNeshRaAh{O0lyq(Hbhc`dc}Q{rcX3W$OU zkqNtVe2&di0wQutJPyWV#x(Ir4)jTAXV$$K;EP^Nw*LUfcRgd6B~zgiNv-_Z-1Wh1 z14t9|X5PH_!@KDZ8^^itlm={kV<-FIqxfwhM}L-oo&khrlqgKX=gwaEQiM`_Hs@10 zfpg!Q7i~Cf=&z5z9AJu5UW#U8Z&>RYyoExUs0tF>ghw-5$B2%XRi^9$JtO7)E$Hdd zi$U@w?su+Fa*zQLxLe)~x|bX@2N4VeE0xN)=}W~%M4%9pwy?YLJHzCrYXaJaN4aaQ z-fb*|!z|Bi+mjAoEFKavfWbj(*K1psl^LZm2D4lj1|9Il2svmO;AVz=zW8DUA~YUF zpY%MuK_yZvpACmzk)_^wf`aHKzlNU$m~ozGLNjpB;(qVDh><+vkR*f$cj~=zQK5n= zB;905y+^r(5phD`xwrZF7k7<_!cYkZ-JipswJJH3ho?L16TiM7H7?31>d^Sj%Wr&d z3Rfc%vZWuqfY*+svs8_9x53fpM=%1GP3q$NX99dn!m@W^>)3fFZ-*M@LvCFf!c(?q zsa&}@BYd1tkF*I*uC<-;h%m=`#%fPyr=GZ>V+cqut)Dl(X0FCUZmpZS*h;9P>3gCAzM zeldLI?|2L=xJB^S$S!d?X_1MY`?@u(>pW6{RBSi)CNl!1yoJyOV}90Ux}$^Rf;nq5 zP6JFan?}O<;2^3=ojc!5;gDgT*KyY zHNz!LT*6{NzxCz?=)--1$H63LwU|~@^s@I zp`iYh_eFfgT14$Qv28Q>_TaZKW?jH7Ex`f@KpOfsZ;x-r)M zaHL&^dfsq8b>Doo6vBlKt8i=8y7}Xrfffc`G0L~%`KiSnbBaI-(&7IAzPJX~{YX{# z>fenIATp_}FGXWA{5kI&Lbo9>Ueo<=sAGfyM_M~(UH*8BG(Fk)!;}7(g}H)a<0Frh z-Y#ajfXvWr*yG_JCr3I5DGPHu!-p91`Ps!Nz%{igzn~mc<$eFuL6;Y!w$1@KpcDL_etuLMi;S7aJUa&qqg*r}4c8Cg$Wo5hgA6&VZI%-Ux zPHoo_0|9T^gZ(}6^kHlZZ?*md>xKz2^R>_NdE^dOY+jew&z~kZ4L4I6HBE1RFJ&Dj zG-s+a4;dc{J{!ctB?WdeW_jIm;eCRN$hDV8iPrD@lRX3|DzwNt#+rG}=YU4{5xGp_ zJzYzVXL9BUM_Pq5Dr+AH0qj;8*hE$`W5|`fwHU)#&J>1fotMsdgo`l)J(9jWJvzC=Ra0(GFF4#7LTFbbR`7<;YV)alPaRnP|oBdgoqLnm5dL>)B=wBRK+)T$E z_t<`<>wFA~=P4+TwG3Yx;1oUtBrYBPCwQ8OP)?QgOyfDap1kmvD11lYu}_`M@o@&R zpfP*-l4+euz|&?8U}l3ZKk1Grk6=LW<0c>PiG`ve`2K!-@zy|Xj<$}Y+{SwKGst-G zZV@2jz}Pom7)T(lT#WmAW~lxu@-115gk+(rA6~iuw@@Yq4kFjfH9V?7Ce*S5kFUq| zmLrto3}!M={eJXbBHJ`K=FeRwmEQoYAs;O>`p5e?2*#xA>$bxcd~yVEEV`!1TvDDp zc?4?6A%;%lm)$*P99f@wR+J9B`1ziBHJp5UJ$vgn=P8uWoJDc2vv>S+BVviD4PPXX z?Z&5VN=(Fed~ZR%{{YK&O?VfhEA{@~D*1Zs#&@G*={tDj3Mr5s$cQ!g{TxDz5A0fn|;-O z7KE_1z@fv`GXC5x2+arMxBU6#Lr+?KyCyH|HabHCJ{>TN1hTKMe9c`2L{k$&IzKw% zwG?GX{5#bS@!hFJWk6j407h2rIoOo7VR7MX(rd!zMCY-ZL5RiPeU~U707& zy2)H9fanA;6Fv9o$DADKFfFzs!sBQB%Cs^jiwkm7)Q_9&Krq!5Xc(hAY3(#J;3Ja& zFq-Mfj=Q|+l@ZeCN$E-V?~DOpS_OmP$z|VVoLm%LIqkf*822pXIU^G)3_=zp_dh2P zfE*JJE2&v@VK zE)Rlo0uY#Ln0?G1WdV*gG9j5%%IQ|Orka`4L{XyxOnk;?@@6>3Oth+U+qf|>cf4V$ z(P4y{sY+4TQ6HXQxCa8VurJF(x!{87t$}(4?Ax2Gjy2Rk#%{bi64NfV$q_1NCXBc% z51vgBq%uZg_QQDB?~f%Etaq@I6W3Xpn64peWyGRty_#oywulibmD(O>NxlTAza;#?T;PIFur!$d4A3KPxK1qfEXU z&|naCuBYpjBCW@%d(9kct_H4;uUeSO{DObL)A-mxORd zAAO$x0O)5tn?XRTYsB|%S=8V`UHVdBD|e;$^}<4LzjqK{%j4J_r3tTL1tvC%HTc&6 zn57IQ)0OM%QSTHGfTl*2ETDP)Z;fDbv6@vcL-A+V4Z&ELQIVfN_Kr7r!QaVhU3I*? z1zMW9x5vwK{{W{VsIDbCe+QrOw3`?})kb^6L&xrMC{nf*Z(pelV-H+Q8EB@|qh=pL zz%DKn?Q9G}o9`aDKneyB#$X%HfbYHVhLk=Dx|PIDL^5Q&JkfTxewG;XKcq04^#*SD zkC0xB&7v~DrWD@rfrZ^4~b^@5hbr$F2IyjmjMAB)Ty>$KrwnWh# z1v+bkJMXUEB&bYFxCkYL872OBxf5U;r-d;GcptcC0x-EFmMi6z^WorDuHj7AaM`1G zUA#ejQ1e+VxbvT9g|;7Nn2ij7-g5HMAtrzvN`%v&;I9!C1)b>cEG^b=k3ijm!J$_# zleixaQ4!2xOnjS|epjtA1hEw{g2`!odEU6RO5cfmb*)K1r3#=%`ndT1o7PS$SX!j3 z>Gx>)9dT@Ms#r7N*FxZac~an-Pz!1)S=Kt)#y~4*S~cPGFSC&X%*tf;&hJAx0XnNDA?5Jj_D&*Jx)uTVCy=NLt8*!k9Jf?gz)ExF6@)}ncac;5pdH6tHo&+CFMIS3a>01+*FSVKIj z3Ixh6>gs>qxQbe;rV!lQsN81WD_TlbIzh`O<+{dBAf>oSO)wcZ3GJoH68``o4ES6O zefak{&{C#W80|>C2>HWA$Fc-1U}P&MP(cU7 z3sMr5GR(l9?njAl2xRoHg1;sWI}iu}LpX*)J$u%nu2o}_IC18WY%V|8BM9Lmp~i?t zU*7?WZ5@Y0I`^tS8LBC$2vyQJ%borK*c-f#H7EkjmA|_Nw<#iUpP*{C?v_= z+6;$mPsbE0qQ|&;z`fx6ebGQ3*_F(JhWD&-P&O7cAg)yn@_?<1=FvMG=b~k|7|ksA z#hFR`d!I%Kb)K*v9)70ljqk_4F0cCOT|g=F;IT>@OWBUAi^D8*3q*~s+hopP5*!x8Eg2H@ zgg?WKZ;UnYhWzCt>h=973H)$Uyme}Z;qlpv(r;3}O@-z|YmG)-?^4e*c<*;KPz zFG=?aSxFcZ|PW#ac*0%=z@DY4_4oh%hXGBHs-E0KXBf5Ze`IZ%@?x z?ZdExMS^QAQguDy=mKK`6~j7uORV+ZGOX8!KTdzR{!Ix8V9-ez>G34u5+rb&Rn$r*zi>te9n8-r)rGT{&heHg*>Xy(r{-33~yWNPG%ZnWs-v+s~ndTw>*O%0lHl87F(a=Tu_U67tNiT zNGA0>329NILTVB_);yWwO5vgbL@=Jr4eCzv98RIJa{O=3?)pWrnMb{tdS&VTb4LLL zYPRn+H(9@#1c5<-RsLKV{mXVm8jT_wy<;AO4o)`&Ly^hx{23>i#8+j%9Ye$)F7b29 z8hQ8QrR)Cyd2t;PO8anT9hm6kO;TnEt25Ci9H*`-Ae9yv8UFyyZyV1TM#%}gQHo+r z88dj+iV1~N4DUMN(g0)#%A0Bp8$IW)Jef6)lgrnQI`DCBO$H{vF1`Gj;M3U)@M)PA zM;}JHaLLk;Iv9tA#bpvyWI`}RV*pANGM!<>7a<4upZ9x{JXlg$1d9+0#ysj{jVz?o zX0(eHlYclcC?;uznGJ$J%*6;fahyTP71)29t~NZLonm=#-nVngsv8C{uZ=Vx-p)=? zBW?&Vm4zy@^?0E`Dz&I(scboD508S^0P=O$Nc-Hawmvn5z_1?Ya zd~tAXdw^wryK(0oan0E`U4(zzetd%ju3pePLclC5uYHwhB49a^;5yb``-n2APyk~) zSI2Pj$BA^cAXOQGqLHHFpxFi!M1uj1>jw#gp0%8FpKQxo{;VHA{4 zB$&%_{tLpqY%SY!pC0?JeU3}8svZ=X+|Qi)&#?@NhdCzCSI$|+wTwO?JowDkBaV|I zOCUuNH<13aZ_f$3d+qt?nb*G@bvfIZi*q~w0A8meu1NktqXR3xtDXUDQJI#C51j(} z>u`-124dmeGC*|r!<)vThYTOIiUx*Sdf@5=Q~?Wu0Gth$WnHIC#L1gdgK6~NBg(LH zSOOWF#6A7X(I_#Ab#{^PXX}irLl`|v?iIU(PZjH#KI$Fs}D z5F?3+ja2LGo$qS;8weFQ@|&ku*Ay*?1xH8(Xau9t3_JsbbR1XUG-iJrwHnAi z6CQqnr&ZY{a5+b?o=cx$Nywp+ml^?H9Upvl;bMTI6EuAcn9GvzhX^f=1F3M@e;gR@ zBP=Gj`J~3XqTug2^42e1*FJb-DDX^=cOt*{cx(ah$I*$N-P-xQXrsG_KM2AGf4jg4 zu2=x?uJxSllgejb)HaARLs`KfVt>avT-R90^M7c zq?PV??}#;mHx$lh17bQ2gjv(Jtc zh$pbQFd6rpJzNbes97pM0M6OaW&qPbLg>dtd;{koNMW@?#px@BV==-e*acg*jO$~4 zn5?-fqXU`&X>Eqw#LhUXLAV9DyM`$#)}zLtzyjKP7$t##lN!ZCV?u;sku&Hud%R{s z63K@?GK@X+byac~hDiRgp@w`9?dH3UIWf?Vx+7JT@62 zfJ}{uaD_-fbgsIK))6k( zxa-#~Arl)E&Q0LI-x7oek;|n{jCpmqaR3E3W=H$kg>}+!ROm(oO>|}W{b!jZD~v9i z>rdx>_PxfBdot(YxqEzYCYb04U-|EXN+|5WZP5s5?+1<$gmrrpSxM|FG2@j2NR5D* zhLM_``{4*{7(s^ipgPZfxNM^br38sGXSs!wlBjev1+>WB<%^s4#A(5)qLQm`y>y(& z6CO(Jxma)G^puDoGjlVMb8NtCns=MPsoo;o>8brYjIMY*0e*{6#QL*y68IJi1^*8z<| zkvJ(Lq;EU;P&7S_BH*>o#BACJ}p0Hr|W?KpFnZV3KNar2&G8<@POG1|hU(RO`6*Ms-GQnL5>+s|afglw| z{hhMY&jMl#mdMytKIU#(afN083qS(2BjDWhpyiB2Mpb}pxOt{%r`s*1SmMTY+^k< zXbSOIHUyy1U=>@VjpgN;COp8gQy`T2-y0ll8gc}B3_5ZL%oPGPOiZU@Z`aQVw1@x) zD$x3O-%E{IL@K7|PP)n0LC66>U^WrB9Z;I|XNxO-7kItgW;$np;wa1_xAJw-{<%xE z%L)apH=B(6$;}alh>@>}ZN`5&1_&2U7_V}CW%Kh5ZJK9R+vb*YIw=aKi!=7Mu1j5*P)w4MnaSljGw*l$?dd{J6t;Pq*{%~sG%j$9pegWRpxUtr9 z@vs@Mdl+jgMtq(_g5^*dlVg9VeLN%ESZ83~!}+`dAOH%aHu~)E`QR|-MP?30nmWuM z9gKi3n(*X^UKA!VPC{*RBB|!JK6*58U{aYk6w!JH6XJwxZ38+6f7I+7lB`DH_*QRYZT$DexXvs?dDpFFyla$>i(!%(ona`6<+ za!Dtk`u%XZVAh5|(mL_1w}ONhsyH+8ikQ6{;Q~|%Rj_CvRLp$!%P)2hM*J6f9-L#O zASiKVsAXo3Sue^~bX8~}ZgzXe)2A;JX_ag5+s&(bZ8}mMLlp+8hcgoo2d^C6Fc_&tmtXcVmyE8O2bOtyXvkIaM_#d<^zjY|R%CJ%g_qj=Q--1fGRHW_ zu&ptpC5FZVt~9iZNx|tj2?HH z4%1lR4pwh50`FgaoLWE(D54318to{vp=2V!WFF)dc(!*j?28wgyLVJ(|A zfXTumlXa>Jn{C!6I(Vj_M3111$KjsN?Eo7($G))t08Y3ffJQCM%k;YYcvu#I`mb7Z zef}lgiEc?9E9bzMDyG^N_xaJtGm(}N zKxRoC*>7hZ13^a2BoBGL&2^oZ&ZZxGUO% z?yU#SnKi+vC^Q<*_0`FB>l1k37p7=u-^oQ)!N{NlZnEFzyxa-QRe`F?kk_1RXsK>6>?H-!&Ui z1w?vD3=&!DyXbjs&NJipy5x-KLwTaPOc}|o8MDoH?*8%Xn@T7V`8O6Ff8_>U7(WisXJdWG zz5#H^p@>(03}|PrD!Ne;W4ag5U+0XZ>?`&Ndj76yT?&W^jk#iCzBD(2q;SWEy!Dgb zwO&J@C5|XT&&a;dYEa?S$R-srgWi3R;z>Y^0iC9d*xaMZu>rtk6!)3uJx%eLceuH6 zhj+ZsH;95(6pgvcrJlDle1vErNW(p@L-&69U71m!ZF7AF4_Sh6Qm$1QrsE!2=f}?w z3GlG|m1M=)y_{s0qN+maK19Syd*BnuR23q~QOIz(o>?)#AcheI6jvF&Z`xj~%*Qv# z;qjH@EdU#Wu#u<2{6()G=|tc_AZx!+=3180s3ZuDQz|NF#W(;en+PrRQ*K&os*n;> zuqqaV*u)O_TKEyQMmh8v|M zKMx9M$p)s!1`esKUmS2137P~=0WbcT;(<&d&}7TzI8QQ0CO+rlsefrlytL4zte2MEvv$N>|zHt#8B zNn@yu2?l}#+G9aX;fEhuCWxn!1!6cZV|XA)B>BMnQ}Oe`aEKyNiYBFU445m$X)+{- zvv3D085ONK8Y(FqIK(J2U46coLl|VymBrw}J~P=kh-+7O4Z;5apRIEaXr)!h$N2f- z0C3M#ecPZr>lt{7xb(rytVe%P`Qrg=COmH7G-BNM4hGMLKL#(EyczS;Bqg3>R2?5w&xh} z=RaGV8b&~|t(N)8eSRk)5h6%{Qn*zFQtRN--tf`oBZn)k%{_5QK*npPF82?|wEqf{kJv6g)1 zetCjm^^GLnPfw$La1aEh0+xKU<Bt%# zxsC_tlVGG+G>*{=zXE3CiKfe8z4ZWjFU}?6(iQ{+T`H1(4K|!pR#~GRym#{C`5Xys zGn39iVQZhkt_2gbgF>WBz08r&jH-Q|(&RNzp>L*?;@(Ax6!DJ{AU=N_C}!=peqH33 zH)9LPEYd;}ZOv*oseTp^f>B1IHl!rXLo1z}YG9`GDb-D`afuyMAYd9`5u1%+wKtpJ z4&|yiwIqORdDVV-s;D6_>?PZql=!>@Sd<6~%X%DrG2&zqF6diL^N$~ni^iZy075mx zZj(-%JL3w5y>^)H!sib5kRpfGwvYkuRF~h4Lfx!wL!lZsml;! zwXstf!FtL%;t|~nx^5TW+}GF)lPH@qZ}HUXo8pCK3U%I`84uOg`H)Ali!HbvYkqz5 zW~PV9oc@EWagJR}Z5z;0Z8eWwaL|^>P`KLB?&ITpDm80(sWS=iwP7+~7`B9$>v^BmlGSCtv4P(o!`|Wt9 zAYpbmGO95A;CW&K0mRGYIj>_r!Qw$hAOcK0$k2|{c|l4lIIt!+0hqt}!0cAlhx5Pp zt}sDpAoMwQ0>|LtpjcZw`5sC4=JBE2$`Y_(K0G%m4L}%52OE!lho8&KB2bPc+(S@B zLnT!ZEopa*pehovi^B92BMX_1#FMKlGjOQVCe%gg~lw8CU}Z>l#d#emH~GC+f94QtN% z6zavok`=c&g_un0@A8#89Zgl3X<8y3c6aq+rE)kF#^!VHbHWO=@S8Muyj#6EX zuo%`e);~S*kVvF14E2XUU&k;90J)B{vlD%3JaLU10BthBfHob>k&DgdvntjH@Jw~T znpI&|Z#kKo`W)flXa+qP=U#nq2IH(_tYdxklX`~`jZDB3HNlZ)uDoW;68PGgxn7={ z7g^5@2;a*(`EAeX<$ws8LgW@?pN5*7&jz3lfN%^nX_x#SQUO&UJv?HL)%S~zEvbs2 zBTAkb`Mx>ifXNy0*XjQNql#7TQ?s*s-=(}%2o4)!Uyi0T*?Qr!rjL(1e%X8v zK$td|lH&K7+rFH)iG$(DYVW!5onr?q6X^?ohYF8pT#6`h?&lf5$BoGG3KYHT%Z0V< zC-8G4CW@mYV}u6?X19x!PJqFK=XLAV#}JTEQ-$AEPoXl`F9BJGdcNQ2Ni|HB5Jx@} z9RufRKKP2lmP+rrq4DuM;6p%?X69w}=dA2=6`_QC2wgacpU(Hpa_=GWI;8GG30EjKE~b$n9ys6GSW3CTEV2bX(*dV$87h z-}t+xIONDg#7ZVXtCLUo;ENbd5vd6GN#i2Yofny~97<9x+1>n7GjWr=98Is#Oq{r)1Wh9#f47QsK@sbzD|L zU*98AX6B%G)-eoI8Ml-TI4YSPrqIIY#xE(r!HHou9(MwH&cYK-p&}H{%SJa@w5KXS z1*UTGy>Bw%u#%O7hXMs-7+()r;M|cGTpbOuhbZ=Elpbqa5!zrqJw1F0DgtSM3K}8@ zsbdZ@q!c373k^Gv5?otBMZSY~yjm-FQPb z0HQ^Uah;R?IZA?<(h$L#L|sXy@COFq*0@0tiq6f`mx^%Op!r79T#@n`A{Gvc4BE%p ziHz_?ri3tLkMZ|-r2-0uvp|ypk|`PEfQ6+Jjhl;vF=HFY3dw_DN-$$CSR3A3QP~JV z!{=sYn&b+=j!Xfqo!{$RpNf1o8yCI;TfhKFY>42+F_(b> z8V54~!IWf0E}Jh5tpLRZQHsT+FMzq%84w*{M#kJ_PM+QPlis z6xdJ0j-FCbMX6*#t5+oH41pC31z`$AT0yK07Aeb zv~EfHZuo?S#6lR?Q_U{2Vsrn*03{It0RaF40s;a80|5a5000015g{=_08wFafsvuH z!O`&H@&DQY2mt~C0Y4C@Re*C*bzZYZGOe%zu{z6lF5PDyFuR7CDfIFlr#`%7O<>x= zZl34!PA`o4Wd8sUf@IB*Il^P}->c>}nghb9K_^`Q0PlctX+RYwdkyEQ>F3Q+iX3lV z^6^fuex+%YxLt(0B7f%v@Q{s|vU9h%ai8CX1fswO_U=@DIp1A7khDXR3~*BEr>= zfPw?LBkgDO?eVd#Q$qDc_%*xHIxlnV zTVe`CQ>>|Z;m`7fHX`Q}emP&)t~@}XWW*QU{>&J8vFbKO&|Bc#i~;xS zviWR8766s#(MQ<)Up6`wlvSLW4d1})<^@PtQ7)9utMiy@BthiXdaE2}&#du5(P8WO zKzrUXoL^v^BSn4Tg`Hvf@=m#CF!l2u55D;DCZ#!3qbLVv={{WY$)m8L$!+)W_29uE zVOhKP*~$EO0ghjW3IQIMS4IndE&Mzx| zefKAw#7JO4;x5s}dinA`z~YtIpAKA0#)t^)c2uyG>#ie|=mgAZacgwFt$X9ZRf~xr z$DvrLX;@tGfT%BMz1~36y_?CNOazFK1er(C-@5EP1QIQRkuq`5Z{vK@;S`Axiw#Se zy|+mt0!)q$vrcpOGr}5BKpG2*%c<1IIPol75D_R!ML2LZ$OVp!#>1$@L|*>@CyA;M zQ}}RW7cJ*}C>+rgwSf^TaC(nSgC=IdpxncUi-$fqfhGX}*1cK(0I7l_a3pIplS68{ zPfv&e0f!_GG=Y;a&OBrQkdf9ALS7H>_JvXe07j@Fd-=hEZ4|-GHB$zwe$;cT;t&89 zYum78oj1D=9>G;;AzqLJDm`1*glB+<3&=oslX7+7owb8U08c^S3=B3%be58XQ<5-% zjW|j$h*2Sd&Z?pm_L>6F0MS4SqCizUYQs73W)7}^x(2uekqynq5t=AlIL?dNz_*je zKzacwqEdT3IZqlbI%KL=Gn>cx@PG{qbsl<25f$oq=>b3@DnvmKY`e;tS|%+}?^Uz^ z06BEe0M#(D_9n73?c2w63^TU^eH-F3BVaf)lSRn9@vngjTI!Sr0aqVlC@Nxd zyiR$I%I|FE?HPd)fki~pMay|u@&*V8a2`yoa>=}I#0m^ZBLxAafh>Nxd`l2}IuBfP z=ntPyf@s%UQyzCX^}TsOk0SZ7?knFJi{KCt#vt%GqC8vve4`yX=LJF>J!e;xkAvdl zFx$ld`2PUdc%I!6iAJA1KJ%&K2TtZwh{ZnCp0;_+Dv~?}PIA7p~g+x|@ouCC&d|;4M14zUh zR{$|~2GH(exv_%6(C>EmYiF7so}K6ZJV8feO|r% zcyy!OY3KWo^Wt?O2y$xlm=4l!Pl-#kpHtizE>1_DFvzIU%s({YJ^hz_G%E)vi!>8X zHqQF-8WX^pJ5D`I&izjVQp7lY;XTv!%m$%Lq3I*IG3Mvjch7S*$%V#b>*tZv#R{W= zAPzga^_>3z24n(^8$jLeKaZOEV8A0m4b%&0oPK%n0#%cc(7effmMET-e!o9PN!0P^ zCQXbN_{aQ(!xn!vkgl#^<$@w|SF1 zG^?L(Psbd8J_4(O$&neQ)7kIw;HY!lGh$7hz5Id=Kzifn>L$E@ zhrv#iE8FT%-#pKc0x-Q|5W3hs8Gk(ZqzWu>-2uyw$MND^kClWZdafIOyF3)oSFSsk zEHbX-?}1+=6HR!S+WlwWg+hWhl)Q?u8>{%wAT`Gtz!Pu5`#!1Rkrk5~;AwF0mJf(I z)q-s&9*^Ia(hv}1c=7`)ZJOtXBomcq1`HBTzVnX&CY6KShb?R2%!0@ePRen8lsYd*E+|Zd}`np%RK^z zrkgJw1qv`@SzU!fYXFxI2pcq*X0$N)+4FQJlqwe8dN7}c=tP-`cof}r^ea-5 zPNMQx6tv|!XMmIy14J~&`X{vG%wbwKs;$(Kj95us@Xlc@O?RLQ?91)kt0|&hh)0QfQPAP+1mnzWVX)10}&-6c8sq_V^(&PEklf3Pfm7 z5#Ti-0tHPH9D;&F;c%4#L|{@-9D>4tc|oCSD4-c2QrOYH69sa)tQiZ$xO^TFH3SGc z19W(KN5_y~Rcl3kCi3;36H%qGAr4<@-Oe67?hrRxD#=Kr5`DY~L6iWe7>VD1tmM2zG$X@VoL^bIb>NxEiO=49{`>lBEQB36*Pc(`)8dJ6^}u}f{FmwS0ILEZ&|*;6 zadzB%E;izs{{VWwS=r?UJ$$hsy`8`zzg|oZz=6pti8|K$-x%VQDS-|R4?_n5;J^xM zDCH3dBBpY?O~Zg$M};;N&YaQb#3f)!63z@>tWG}sIt@sQ&&ORBB3YVF?&s0b5~P!~oY9|wb_0#FigFdoz3)1N8?47{-C z2xm9zle4o)fZ>jEH)Un_;LeyhFUKbCxF4Sma*A%E?VTey;_pv@Doa-+S$3xI&Sba9 zV=x^f-2sm=_{==!Ovn*cN?Vm%^SjBA5g=pNYgg_Z%X7&NPK@MViU)J$zB#&asql|mjU=|?Ew~LH|_BJF5?G*$s6~7t4tBeihI3oUFT03 z0-TlLPn~HfbGf_XpduuA3&w!Bx%Yg3BG5+ed(8RQ`SCylxOp8ZiT!r?02?Mep&Ga| zo*AxP$SQAVd1T&J_;Oac|A>aSe-y?BC+IyfP~u9|9bmwYrF0Uwr+gGj6evGF0a z+)9PM=F@S{UOWofO365s)tfn=eoPmDx8>kEhL+rye1)8XC00^bvAA}YdhwLxoVde` zhJ)NMQSp`*{5^909rwrAg)!k?xb{wX)BExY3w~gH)PIw%&H}2M1|lSHRC8-{9l+Hr z&&T5fKk_~zKt<+Gxx%ll9?+5WYe7XijG>i&@J6RGaz)?X03WMJ#-3N4yft#-+w?#(8WH4Hn&nS=W- z^D$2m&?F)uBuC#j$pHr(7;hccW^0^Z37W(>uIQ>0l@DX2No%q%`mTA9DE!&OLkmBf=lB4Rc@&0ZFLTDg zAk&%-RB+Yb&b~qm0m^kGVqz42N#YKmD&RvzL7fXcs-QhIX%+H0uRn@_6_e-AHw z-n?)akYb`06+>PE+ys$9BG|#QBR6_U_#;oX~_I>^Ur}e zXgOU5{{TLNJ>5haXqIO^oCx4wgz~6j%5?d!Q}4N42aCB z@edLVA2*!EhYa`e7sMJ-F{S}9bVaP6zpXfT;R+a?Wj=!OyQRZdEOM z{ae6#xt?5F`r*9qSW-xM&EHqMFI<1_^g{c;i6-}X=63j@dy)B0*Bz+ve!Ls#IS823 z2_NP9^E3vcDmkLjP-S4I_r zj1HoY4q4%7A|bMHvwlH z9&6O`c?kyu1v_!h`xbGectueFQAT`@)$hir?v6sEN)~fI8Q>rQ6dH?^T4_1W<=+B{ z&4n;VCvRsQQuE_%Bih1Lc`YX#{CA6>h>MBKu6-U4p98yPuB-xp0+9>@!VtBl+bf8q zLwn`iKr+%{&>XEoP47AK0a`20QYq=j&mSHbQh)#q2vRFdQS^H7+OtwOYP*jQ59B;C zx?%@NHXTEi_IvS4h%$0m;ndz6z~_t*MjW!W7Dm6Oc~oiA?*L@itQLImy#%Xr(@^;g z6SLU_Y7Uq*`W<)o*7zZyRDe=l=ZRa&^Ur{6;D4$kyO|@u zo+oO)`MV@pa_Zi}HhY8aH zCRvvEC#E2(Zxj{aYjl0Y36*bu|alPJp_23D+ z*zLUgU%ZE>SruP~CFtPm;r#fNi%Eh7XQd!*mPYk)N45q6E&ToJcqjm}0GzlGIrJ>} z^4RT4l@|hl!u;=k3V~pa0ccr>-rtggd^oYE-1i?Ae9_-$)J}N*P z1%PXSics1t9{?cWBqn=-H;fLZd2oURACmP!3)`&ce2&M3Hggee_MiLUAgq7{M6TWw zd4%h4jR~}NDH<}}h7T#X#kE2C(*RdP4d5mT;|LNeEi4{~F^w1+@dU-uq20WU$z8vW z8HfZ&g7s_z>Ty3FaKfpaix&#kcVDoqs+3dB{P?bH6fwTi=SwaGS%pfp{m^ z)!Fb}*GzBm>S(#oiLeXY;&Yw6>h|BfeK=q=%Sk901Kkvbs6b}TXV-6n<{P+W8Mmr7XM8keN@dZ-_LIJ}3xkZN; z!Yme(SxRCsgg2MFL={{rp1W@U0G;u&fw~l@XW1{-ZxcFFrjygZFC6{lfa0POEXq)$ z%`;QZL%I%(w-xFz@NG6$1Ef6woqJ{R6c9lOQu^aTA@6<1ssoEwCtt?#y|ct~k}_yjz6&~v}H#VD$R zfI*}~I1TFgFt((kLcx^#Kff4mN@IOl#m@Vo@!<+AA+s@#=WptJ2!LW&0=+WcIr(vX z144kY1b7ar2&0mb&B(8}QMfrQO2;Z1EF}?0&TBbnqG+Lv=SH_-*7ii_cb^fcrBdQ9 z<@scs<63!u6wqBL&EeOAx!I3|$%n8w1Yn^vr(V<$kg8IsVu)5WFS{y$DFZkQsP8kH zKK!A^--@%A zs4r581syNv+jEFO!jN?KOJvA%IUMk9hLfAut;W>tGmkkaFt~S(G59d}jTJq?bs zz%Sd!IHCb0LQBlk(?957m{yY*^pxUR`8Igr68dMQqTc#p*UR8<5Z$(b7VqEB!Q%v) zqFrR?`|oObX7u?jof@jTZkU4S!wzB(_awTL4;sL6H1zGc?{sit~ zQ;$bH9h`9fA6>q8P_7dwkFojL{4R=-POb$#U!6HUX#~Ea96_e_Q#$LP09BGqK7af1 zd=;WI1kl?)cl2kSfmSrQ>~w9-{RfN}X*C(zdj9~uv&*<^oNH~&)*mnDz*5RyNs-{_ zi^rHI2H9Tz*W)+7yhB|Gkci3Jw*DW_h$BF^bWthx_WK{N0JK8VV}Z&w*;k%CBT*2! zt~p(kH}5yVENZN)N->%v40Gqffmm=OoDx?!Lq7bA*fg3^>RfZ5k zGn+_**cg~Y*1YlTNdzQDBuZ0=;a`pw@d1E{31YDj`0VlNN-CjZE0sA?@y6Wn=nTbD z%`IXv4^23Hp%rWgn)nby2O+!!0DvYWs8@U{s}D|34uU}1UV6+SPF?V$fQKcbI&j&+ z@!t62sNnIy8ODw_+<5b~7h7|TS@}on-g$~E(@tt$d6mp5=9VfiDk@W~cQ>BbuLaUB zy2L>aJN3`j_`t6u9@b>~UjG2khj58epd}<@!SN3`6i5l$H+Gzd?)dH1Kx**(XD(+P z?eZXWk0@yfs`uCX^2ldwp~|Q(*u~p?PzvgiASgAlAc92j6by9)4N)Vs94>i~f?;Lg zL?h+(*#lY_~ohNR1@5-d}ue&V4?HHB0kg-0izu;dP?vpn@H^tLfYO z>%ajAhFv)t89ABrGs1`sbQ8Ow0~+PJc~sSb88jLUL#AyPqe8Ka9K%_?onINzw!Eok z@*Q{U?eXNtBt}bhbND{I(yAN;2vm&+Get8a;j&4!PSA=j{{VJpFNtb&SBX}vSafkm zJcSJ9XA0ZBmzTb|@lnYJEuzDfU~zc`_;(UM@iT&V!9RD#ODH=ILUXcTp7eO}g#ZkQ z7~@Fcob(BUfp8_ubPCazBXf@eV)RNj@QV%PUvMXdfhbmXpDrJKdhNnWfyyUjtRG)i z&oxG{=`maoDp^Bd^XIq%pgp3N5_J#*%e)H#P(Ef}uRhO)NsuB0jKxyRSvRAsKmyYw zUQ!I`oo@L;!w6|j;LWU#qIKeEXuJX&7mGea)>~0j=^l$CPi|HmUNyx4(kptjdNE-V z%HRtCgUBhtyuW9v^GJT#^OWM-dc%AKKuEuU^mRmC~TxB~P)j zzaiJpg$Rg<4Gm*0X~rYQhmcMemUaM5Z)P9YiX~60j;0!ZF8gisok@+3gF!vBs*{R@ z0HJWsq4mtY{P`v#TZWm+0l_z(DaVQc2P0-Je!7=w+aZlfiE+j4!iR`>X zL+Vckz7oG@!_?}JevyPJg3UPQay_Pg97>Wo1PkfR(0539Wlpi7swDXQ{{R!k$RYV> zPW!xaJ@w{7D!oVGhJ|;D*B&IJN(jC1cDxhVF5ebZPHl4~F~0rW=f@+=q1L#6?f(GZ z8V*A6Z?l*B_w(h{hSkm_ADH!iyp7U?=#b*4*G&2A&3icG-Mbtsbhw?*?rTGDZ_F_8nbig2ZPHJ}3mzQNtBF zg5T!zVDdIol3Zx}NBC;>t>w1wb{ zMd->QCDoK{h7hw zHCV9?VoBBG_m71%_Jf7$m8bQ?;=l#ugqSdetWUYYEKZS-t)rYj?~f7?+`JA5KmEUc zCc!uaM0@Pr=s4@Z9uf+aAqSv5MK$p>4XVUDXmZI8+sBCUYE%^)wR4|a>le$Sjx?&v zt4^PG#^MSfBuj?##C>ni&Pdkz6{m=RrhM_@puvI;G>e9>&qdszQIKZB_C5f0K#IS| zm()D56@x7SWA^)O{dnlOa20vlP2=Z(W;G zElbcCG4c@^1^|W>8ma(!Ml$1IQn-Y-ok{59JO+UlbgGTJf~x+ze2P*)-ltr>cgjBe z5fLVmvN)8B-F8#JiQJ0Bey0+qO>;aXuDp6UuKJ&TyrHLO360TLNn*U6)4|Dm6*~NH z&W_~O@~8vtQU&+&_niDb9m~>xkGHN}_23c}AY+8}$R9lj;+`xd(6X3dD0hB3-xF3a z$50g7%=`Gy5~8jSO!qd7z%%pLIi&EI5ox+(;i*y5vvjA84Z}}cn{VHQjBwly zQ)45KgD<{$ZnWU0S=FK6kt$ehqeFS9&8*|e$R#=j5aNM;zu$>a6|`+pqVuE2(R@vb z(1#D84}6*Z>%@y>LlxM~F9#_+vI{2gjx!8*)p=LIXmPL47=J(e;9xwha6CLhBKr5? z*eV6o?K z`QNj~mb~O?Z(NssqwBj16IfzHo%f$uXA{Y|@T19bE+jJ+zu!B}9{h%6uVB z>%}9;OtiXS1fMfKOtP!QgrYqcla#yec%T9`B`UJ#tncUXYCr=Ac-vimCsT|VAR_W= z@HO~Zezhh;?j@k4Y0~-;jE3UCc8hk4N5qA+mGN<52?;LEYTP_GGr?QdR7lgpiW=%p zpAFvAZX*I@0aLUChs;<(#3u_7^rs-X$vg^zIyxm4vg@8w`LeopLLD4`_iU&|6hH(c z)SL$;i?hSpeoAV~#!dN$#k!Iqg8;~ZDF|9o4;W?&CJh6j6K0e_Q^Z)-qp2p~9$ikOlTWles3$#`)R)2(_EoWEWG z*H1$WfLpin9=vlMXE2hi=jX(O5?2y_zEg)W`|uUl>`0pksdMH$;&=k+L(1u*zq3r^ zzc5%Jjq(zvr9GJM9w$?r6O$qUcHH{#G#s>qrD3D3EWh8HP#Iw`wvLWDom_lCK$_xX zkiv0+d^eP(Ts5i~gbruscmb3KDhMZB^UD2vNM+!w?z@p(4a?7t5=Neh5~1?p_rD`x z!Ol43a&wAv)w94*i3N`HDL8nhT$!FDW0O=kJ|xec_cOwR>Mo2m<{2(2pYAEcbex{~ z>u!GfL3u!CFL!y~K6CZtRSJ|FVgBzccztJqrCLP=A%F7q-;#2lll}WWN5BVWiW|ma zF$GL`m#;HL46bpu6?jj2aNjH~5&(olc~p3n`F*xW%BF%=8S(M9{0y-`q*mWg0yFD6 z@<3uN5LcJ!E*{&@j)rrsVz)$4p~D~Qm8MW&Ky8L8f&P3}Lxm;c!~`gqXF1vxi-jW{ zFhiJ#`p!H=a_1~QX+8)NgxTPrAhk3C=qmHf{4NBRU!>e?5JbN?^>2z45Qk_EiiB?d z96UjCIT^}y%ke+d^6mi*0x0tcd?H}=P z^v#~r32#Wy^zab*j9$an9^NLFINwX|EBG!~!H6o*t_KtLR(kHoP+n-M_Wo?S_os=5 z@2+-#d|P@wcz|QP?DyT~A5*TpYIf!I^6XEEzd_~0D^+S{a~a&H+t4&Zz&#f4B|iTE zVMa`DBq6!MB9HNR$^qPqti!JK*t7NFR)gb5nWlVCu6Lh#2p+8Gj!#7Q@65f>DD(-xt z{qEkryt0B-bJY9!bfSeRp3BE4xocIf{(=`f@6=<0A<<=eK(2j|7^l z2Q=IP6A8%9o|{Mmbyz*bu1D@Eo+P6P7&sa*D4 z-vi)CKoi(DZRUC|_^?U@f=|Ryem^?j1CVkmi0P#`y?*i!hZzgG+^QJZK=QqbSjvkK#PvHK55L5utlSvt`K7AXQ+16qH6OhtK1Q z!w6siOBFZbop_a6)aJM_%~toqPgsg%JcNljG34p_;PGX!h3vV9BLz{-Ck<;E3!j8R z#J?F+d}4wDr3GGht5ccZzZmFgsTDAKsl4@xJRwBjca-#KU#sm82L6cOlo{*3Ir6t4 zJpKiFVg7z!FxauFzOHl6G4Tnc2!h)lW(l*NhWPqsV-Ur)1jPRU?~)PIPypZ)uV3TD z5-c5p7lE!o9R~O{0+&Yz8^(?=e)Gjqs6urkM;thV_+sVq0m+wP1)yO&Yk@GHg)bN6 zO?%%1-LN>F{R#MAnLJ>M?F-M=Y4Up_#6a0G73P-(3cGBXTJ9i-x^b*Oym6SCY(?G> zXR$u@U-E!Ok2BSbe)#piJ!0d&j=l}&_;%H*k zO5{gpw&OYC&Y*aRYlYqfxw9w1@OtvxBw*J}&-nGpJmC;_R_h0SH}(6OK#41W;5fXo ze51BpJ)G}>MaXhb{2H4M6uczN>xr2>Id>_8Wxh(YiPHv1m0)5dq1+2e{3>){L69rgTV#yzU- zEz@rq&0Ot(5;Dl3agWLPgY+ZVFau_>uSOR9^WZ{bsv$mjC+GZi$$-BN4f);mK76Qn zmOCR(^iQ6Bb>tx=U<<|#mCin2&yG<|&JZT^d7Q(KFpUkmw7xbR1vu2RPrm zMK}|1*3p0O#XqS0f^ite>CV-XP+dfKCqKH~jiO5yj4~em@v; zzl88=luMA=?_}Reva}MW_9C2Z*ex#Uur`MgY7bdgv z{{H}2b5^Nkdf)~5GEa{Rme(s=v)Vbn_3=}uPJHt*&FJ&*&MyWpHz|}7wdK5cg#lS! zZJL=+jQXA=QUu(2a&u|l2Yn-6+$~6leP&D}_27{nmi0g~{r>>x9x7Y5VNm(rPNm8B z;Gr#oUrv6Lj&JW+;=&RlnU*l@;on{~+7L;t;B@;v9znu@?1bJ{er4m!NwGzvK>lw( zu0zFeh?velAX&$5OgyDE$0ahs{!~;UnP~*h%m_&oxI$LMP8|_Rdd( z4c$s5a0ZS;zy?xCB^@$wE@Gq(3ug=yqn$roWBBkm76h@VY$m&MKU@Vhft8iL!;jAd z-vgs06%;C)q)RBV&b&aKh?|=X`F~FMn$e0SFfCM_&KU=n$ch^RA~Lp#9-emB#Nz8l zl4zuR>({)ENkPUg29-*mxs)e}MXK_Vj6g`^Me8)(=)eTxSO7^%gj{%Hh)Muc61Yf^ z?3v)Q0e}>`h`q$oA(dSnCNmugUfpzDID*d6{~1Hk~3gfwaKN8_2|5P}Q9 z@;chzfxj;$EJZmHoyFlSGwHqeQX50k{E_jXz-oryQ8}Jcf#2=for{ z9?31$W}Fv-`k4a;T5dQv=hpNqd_zNU9GsS-wcYXsIt-JPpWFI<-zi0fMHK`@%{eoi zB)%mGQnRYnq607ikTCE>lspbEd6?)UTXYZir2;FRRCl4R2@kRD>UDLIF`t17f)DSU5MD>4#@Aj>QrpqevEJ5sFxxbkQw%eh(47GIx%DJ;(eWD?y9FfzuCMdh4GAs0`v) zyx@3q`8n_%skCkM$;sMj_r5?ea$Kv-XB)f0-+pl|-J!|O`kOtS9C@e^^pbwE@xH$A zi&I>_r{4bnuU)DKuZJ>kLGt}m%nPj>X^bip^Jsqjn5zjBIpaF`{=5PeiS<0%V_W|B z%L~f&?f(GNf8Ke_%od$X{{Y_pr+`AM8Cpc>9!#zF@4--& z?A5y`a{e!`4Sz6ulpnztcgdw;-TObY){2WiMx33r~MmZl{k!SPU& z`tX}n;VlVCLOJ{RrE)99l{#RxeK@L8x|0+bV%Ec!R-!Q4)#^M6#Y9K$%1Y z5p?Pun@cdxmUyw!@fj*_1AZ?a1r)%*&WE+D%=e?_g{e7$gYD;!W##24s2~==9jvs! z0}bG?Q#%6m0waK}ETiC3lLVUxL6d*LuZtWwUcD%XLI^~G;9>@YK?MrJo_BUV__okX z5U)kx=kNORF%&N2MrxfeJ$_#aG^U_(K4B*2Z`Y3jgHuI9s+?X#q!9tJF_<{wG6pmV z0Rli=DW&oiMgqbCr15PPl)-NU2xs`*qE=HzSh99e!;;f4gCK0CZ!aO|2Z!YF_BsM0 zL^a3R-#Yk#!*T=cj^=aqW4;~&HS#x;F>mFMfP&71nN}C9b3BMJsM3N=57*bnejz8b zdJppap1(c;*bDKQ5J%MgY0$m~0*YQ?3~xqTIPl9cR+=1}WIm-E}kclq?jVyMRobAi88pW&scwESl&`98Qy39XNZf}&+*59^WU666`u==d_0?(J>AuJA(lD`KhCmH z^58@mxY@+`&*J+n5H7`(yzc{eeueS1MvWZM*7Ea@KgzFKD~MY-<=;=nb>OCz-GiTs z_R@Zz2a?!0`QO_!?*$KLMm5S>jVY$<@7j7cC#ddyi>%^-mI|%c}85uYZ z?}jRl4L4Wq&+72_1y2b8hZnZz^PPu=1x570)byRKyuQ$dG;5?3&dE9ZvoDQ-oiT$r zB{rA(}G>Ll7K&etZ>$I1`1vlA`>2&luGdfwGRwlda#s5;){Z8aBra&&%|929PR6 zvUm0XG~VAYr8~zti@ZOhJb{o{Ze{40m_z!me`)rbAEDhn`RNq_UInYwuI68aVoaBU@A5Ud`sj^3B1YeAyfjd}xrhIJDs?kaF8vt@0I|W2{+^uda9u?-RojsuVbGK8NPX=QIWuSCLNK zzeRfR6ZDg&>^b1=dq=P+s;;$Iz?@=8OyCa}hgmomFBrUFcg6GAp0V`L<1akNZYebg z)A@za%X;w|vN!ASo1UTHTA{HTbawXPcatVpuNdtFOeZJfJNT~nnne;d2wDC7`t{&d z6+>zAYdg47^UJAAf!x(lz>W z*O!0Gd~roX0jyI_hm=l7j{#DM;X(EQJA@z?fDv-ROl?@C7(Xm=@Eb%8TR3>&$ai_- z$Id4~yt+Q5?^D6@<6c2~fzR9PJUOaJbl&6E4`FGl4WItXC2?}t6J;igLefQEJB2?gm7m^c=!0+XYl06h< z^?6os?;j|ti!w+f>adW%E8F76jcG-B`O~*ppPv#oBJ{SXU}`JzSmDHik={Wf#q7{D zBh9F>&wZ%QQ?~qOSFa!VVA*fAp`2PSd z7tGOVotoP{-JBeAz#5f^NklU;DbK6$UljmueFO42*Er+B3#ra5uyQkv=FWG*Dy&aL ztB*OyHhSRkY6pQK1*jyb&#CGejaQJE#bESKExmQ&zT+B1^*dA=1K%DBDp!)kIY?8W zF1DP$E0z1;5k>@5rOm}i4bwlBlG4OTo5^02QUJk3De<8gQ);MebWP?d+_9-P{O+D zvyXFR>%bZU16cI=9<7*8e1lvRg9x~dN&Svl79H#Xfohy3=iyHpxXA7RI_zutXE(r3 z3S`Msidww9@E!PJTGOHxpr$w=TE!0nF`#CY7H>V0XQaVVYJlVB`1fv zq9P=OSPLSwXo%<02xp^n?FpQJW zFOH;WYb~6iP9n7Ykxwj0Dh=ji(h zgb!r#8AKY;#<@Lyxh2r6P74+|7$RXzr>1$75UmmEGIihTa(PEiD*k!i67pVo+JJy0 z>zcW3CFhPlI9O*lmuf@%e%?#BeYTv|qG$gAIq_Qu3UfgeM0oetRj5!LX~>e-gyr=M zXNbcLY%wIFdlrbQis@RWi6KYf`7+-Sgh_~ssgz1@GikmRMzEw_0Z;(^0Rr&&S`;Z0 zj@VA$Uk{dNB*MBA4UKG{Iu3vMc+SOC4wYI2A+uE&cn;% zV2bk)B?^F01SZ#p}8#9zN&o=D(sV`=bZS$?!LLaMiFxa&yfB5xt>}XYRxm>4`zQp z2jQfJE{_;+gwWp#+D8)HlbKL?e@BV{04zgF7_73&LSP`eR__4b#F6_r(=;U1G#pc; z2z2kOJ#1*B2w@Vy=d&ihLaIQNndrF(8_;t+^!*7P9%*M^KAiCdHeCQ9i z9Qf6L3_f-b{m0zSQf*9`x2^vCinLA&wcd0Fb@lT3WZJQKxo1`fKfeIF8Z|Dw$W`_A z0F_A!YW9kP^S|lq!lPdD zCRzIY=6KjEaJ)OpKc0BbJd<-m6yCBLG2C~KRH|NoJP_~jeBt9Bw`a4~a5?e(__T}X zPkeF-ue$ix8KpV-FZVR}n6PmqOBSNEpA=##;*{nL26IxcH?ch1AvLU}42mepYCOI; zDMt~!w^mb;tpKJ*5~T_t*PHs>f#E=e^ifZaeO~E!@KZvlD@89HaeI{a$Ib-+?ir&mbGC7G87`m-k9rknFbrH% zfm9`Orv~4N;{_#gmYk)tJzbs814@fjQ!}tT`+D-E0XP<<&Ke%(-g@%ZVJVQ>JS(%8QFb&#OD^a0fG7b>tD6xu-EKC<;#r)**5Q;UzHAx12&hxZ&5d=Ek0#R?j z-<7*j0FnR$fTsh$aq(m!fCjAz1%L|C{3ku~n;q%p4Qkqu^Q*MlDVnGWxf8lgK93p<)$9;CVQg>&B9bZYLplKxqE}9{`Q0 zgTyTB3bn4U=fUEFA||WwY*NCfV_Glf_WE>o(<%j`8k5;5*)YbMd?e8nYKA%MhPS7PLZXtCXX}AK&GSbJqQ*v1q3itlauf_`J7@vz*Nc3Jims00w_9rJ z*3|Ll3Co6RxKRzkeH4nhFiApAV5U9AobdR-!cYKK)nHsSaeqr~$~Zdj!Pl5S zocxmM>#jG~m0QgW?~s)~H+&4%nnJ%wlXGv~x$k!O!@^tt3JMnho0dTzC_3r%fd{jfwf~727 zPBpgPys@gNEG_0vcstDXJYk9)h@of`D?M(+@Dp21DZJ^ z6#MVRARw0|qp&zOFq`18k%lW(cQ7um;(0_QEHR;B9iHbi-oONqsZM>@t~vVg3St4K zr|s$frg#erpqG=L;rPz}{BYZB&1JM@5Frp=Z1AYystxux8)sJMrV0uH8L9Md4EXA+ zW)yi*^*{(S=$&rg2~;*o7xoD}!9>!a_$MFM<-(%U%a z_2x8+%8R?ov@1Pz*NVdM5d&693rOgn3*u7%Qbi$SQiHJfzA8b5MouCSqta^*JjbD_ zOGc6eEaJCsi3LCu7Oho+v7`cgaxZ|IR_KsX2D=12yl^75O%)ggt}cm-;YxBT&E?-D z{{ZOc#c52O(-e0t`~AXM;OUQInF0$tAF?Mwtx&y7yzCHmA)o;Ql|YrC@W>FP zg6b_u1I!1^k^u5Bg(uVj2n9SKs0{@vX#<0T?+g;?1+f%>x*;V3mKq_fwOE*HrsQ4^ z7#+oM<%E!v3xvn>`=naYxd$4-`pSBEe3Oqph?wxzm!0`%hA6GR#NW3M$Hw@W7|KjM z{C*?Ucf~C#GT=rzdEdxroVAIW4WG7_&15uq)GE5^8`d) zgtwQba7n6vj0&_J4fOlx>+fF~0`d#6j;X}Q@8hv5yy_(&7Ew@^UW`!*T8x2#RGp^K zTAZx#Gz#<5==LHJryB6yJ^uh7 z`f0zlaZ~U4<2)ES0*&p=dSj1&d8-ahEx#8X{{Zi=29aH*6tCf5y_4UV8?}uMLjhd} z7$o!VL{Rp;QIH@r3Pflj1+hs0AIo-x@<576!Z$z_2BHG!@j{xQ397&x;|Oswc+@S+ zAygJ!gr{V8% z)ARmkfI-yMelzQbJL|{*T`tF;Zx$WV<2wW_2t?S)obR`@JY|M8Zk)t!PW>M1r zRF2!m=k82I1j275dB;xgL*xycUJjgHVZN_7lgJ(n<;8a^oX>*tuat6`$P4&-&+mP* zg9isiE+5BlIpYgdrE^C)U1weWz9NxLBXLyZ?9EmxtKjTG9&)`mlMH(f4+Q4B1&}WD z{`&i5@&yn@Dn5#JE0#)@qPRTkNFXxyd*j7n1WM9wQi$R+e@+GK548v{2=zHUq#r!-)w*R7SKDqdE@hTEjo{O|Ri2~t6*whNzZpHcVKzNzgcm>QQA${kH1xCXxQoW3+$!o!M2&>l!>Z2xo zNn7J3SPHsu2?95fIo89+^hsq#9NhZ<0CUTrV$=adArVA`Oh(~?g-#S22?6j#L`+g0 zK8LO+8_nI=pofGq=n}Lex+vPdAq-tCsY9_L3*iV9Q!8c-Y8!_iv&9;$6oCDyV8V|s zbK^k57U&u!=t0hTlrMsWG9(dwLUg7-Qr|5!j;zzSxqh$s@c|)qrh0cHGlSX{ zLeSs|RF7Ek#&ge?Z?uu_(~dYx@$bUz-|@Nj{{Y=fHjbgSP-U2`Y0IgHU zh=Qxa034%c2+3B0fnbBPy`jGO`yO8?$>?a>MhD$lO4bCR0NqDb(MKWs2OGV>)vGz{ z-M^1)Vlln?_w&}y{_mU^;*NXfaed6O&l#3{S$2MXcs%>W_)ah5$W_t!;G4t8e;l3- z{{X-5UKFYN3J*%V;mO|<&7cMa;>|^Dr_N`;HU_YUI2a8-Z}H=bk1wn`=&!klqlT%W zV`?Ll1T)aHjPXcjwhAoZw(v83VG-zo_D-@;T<_zG_^<$CW*?*^)e*bkE^MIa^PbK# zpZ)O-FQ~ddDo*&{&K?(me<4fASD$^c0(nqiD?$%Iya9pH-o7XWOo+C}Yr{-II^>X0 z0#{H_CM=0cIAP;bMLAotF||E>o;i3T2)=?1f%n%w2-U?x?8-U37uIt;=>&2nqF7;R z?fCiy3y`BS+-lDJYCjxsL1xZ+{#TUnsHaJtou7FEh-AC)6j$q~*Mt{|&%oDDUG`4} zMW`kXisX8IGvRz2AcBIBM0sO9eGGgFK%`8dF2je8bNPvM6l8Q&BwYOdyg~?#UqbS^ zu)XKcg413iq~|H!*}q(P!wGfT7&`Iqr|&!v5o@n9a6||3I{5OOlEv4S+y3}}9yQ5Q zfY|`x1+8a{Y_Svs3D80uZ#OLQqUw^jH$mwEQRgVAQUx%gTM9tslK2!rQZ9msjYvf4 zr?bH?51wlGr|xGx&{{_^B2mwgpCJBxb}d@<2?!1eP`mX{8X^KLAtS@tnZF~#0C8d~ z)C&Iq1^V$p3k8jcl>jMK3r_`2ZIpQs1dA01uGbRjM4?-BJr=FbPZV0=0>`)xAN_bJ z2AKdUiH6ZnQe)%*!YDK>fdj6`p7ismY$(+$4J!mGU_9Ltrjr072PgqNsQ8r$Ig2`+ z1WsdT&yyFA8k{f|^xeScz?L|?i+*gy{{Xn~f~cKcf`gnupCiYFnu7*V9jPhIGCmbr zDhpzSGq=i4d{goqn`r>SeY>3bL1GH>_Uo;9_|90EfVl-icfpwB9~+bv_kyh1N6~Xr zYv4*W3##P25bjCOwU7fnlJNo*d3sQn!4s{>+~uZT_xzCn0--ICh@e#v-+v+C;72IO z4Czw2(cbuJFnUp%s2F;$5pNy{HUz*z(jX;V<5rJ*bsu7W3QAJgwjRgAZw*1iw(Hx! z&W5c*gc1Eod*8Q@06T@&DBd(iRx`f5JxUoBh0Uf@_q}+)o3^uudDr8?nHWF-h?=9Q zyTs{*AjJyOK*qX32q1eJo-A@V5S~y)#Lz>-Q9&s!7>P)87ZCu35JL-IR9yt#u_?jB z;UmZ)3<`^>jg6u*miqTBI|s#9(M)Sw>oa)Y-%1_=e6wpOUmkK)Ol#A4 z?fQLj$CMKsa9IcA;~&4+L0HgzL$2R{()dB!^mm@e->d7(Knl84zwztW;Gxj_#4UQ@ z{qerM0d>6ZvJ20?z7qInE%F zK|M13_hICe{(K?I-hrraOssSIJVcZsZzA%7)RnIfen6{@5j>kxWjGxmnyiFcH57L{ z-J9@cWkArFb4FyxW&Z#}0F94ffV`ZViSGH!2-PyE;6^D@!3K)1M2ezS#1SbW$dbSY z)oe2jIW7?+qu?OwXrilvDaQNv*MgD(sFEHPPRz^fmBk&BGoq1>ntg9W;Fn!^TI6pP z8ij)yQSdCnD8Z=4kx1QD@5UG;Xo5PJ*RXsB3cd-s(jrka<1--!8t{z%EJrx}7(}PX ziD<`K8e^J7$^QV&2morOxgs)e9>aowM8Rmi$24Pm^*j_cMA7Vzg?>~0*C;v0o&A6B zzX;fRSoJ&1&Yk?e4svUOaQ-)YwdNPYlVy2o05K0#UvM58jR3?j_zK^NlB_RM5cwe0KZGJp-?4=wmKo~@LeketrU_LOki(@V;aE@zQCY~5av-n}Qm+D30VrE-qGF(s zr9No}0*Xp40Rbp5blMc5M*)&SVSfm^1Zq)85EUWm7_~}F>rP6vhAk)tg~QK+R85B~ znyFS#$oQ*h0x)A^fDnvPUP;9%L}Nj*PPO;Po#k|pPRst*dYXtLtz1B0PO827*PkZI zF`EJr8SitM{GkQ5Ix2uTI{FF~X#@>9)M;UaeO7p_$2m;*2~V!s z;JQV^08T*xN7oMd@(Q}_u|8f=w6^rq%^HLN8WmzJ2E7VbpwpptXGtsEQhL zXm-8`8)pwNFbC930(6|^vTTuitlL^(*q*mVwgl54g5sIM_z}2AN z0u(49X-Fl;zz-Os#U4m`kV0mtCiHT^o)1An6V`D$UbClMdD=O19p@Zv^?!aBkr=UW z)b4W|;I%XXR>XdK3ODoj3N^-xzna5?j!#|)O^2=|PJ>Tzzu>uW9eZK=^mVp)nUNdD zj3VKjzRLKXfcL8(*W>Fai47?jiis4IbV$;k34>u|&_!8DY%l~bfOs5OyV?jz9YMfH zzt?hdGX-f-I$EX=;l^a=Sm=)8L9TpFSC1f;*6b~c09a4r!rRI zk%_TxA&M91f^i=TsVdTtWeNrbAP2*n#(_Wp7Mx80;34Ibu_X?mmnWimNvx0s<&m4- z@yCd!s)XTjjh0|Dj=TlnMw?!WSewz^efbkANJX09zfdIm*T98Z zQKUDC>u+W7KvJdlsmmD}ZLlm*@yr8kFF~#Xe3QGr0umLqrw2}cI>b)ENFai!Pwe>K z-mx(PL<)n;p2z#;4>aOj1ENa*0Ir;1o;qqE8KAs05S^TtuMldafkN?$Xh^3KJ@{oz zx~ZMrX4x`cWx%APB1a&5dA|;yaY50@fZICRSfJHp@KaP0jpc`DEBtd3(E#p;w`XTJ zi|}?nK^rhk*5%(ySFDwNj01e}mwt#Ya z<-F89)Gz^y3sYvngNQSRxT3-gD`X%bB|vH0UjRX-hH987@=|d_p8{eC5bsGpCpydG z(GrE?zJtICL9addC4vV^g))bW(FV4;J4qxx@%h!%uF=Wj0!?tGpkrAlBG0b}59 zX~6hzQI*r@_wj$fDxgE7@%KB&kG*QXKDrVQz`pr9$c^xapDfNfW`R^ ze7`AgK@>1~5&UaVva=pG)R_!e`SeyxWK0bUL3UGBd>+`&E9(<|g zypH6~^Ns!=YF0gueOB5=1EK4$0&>_Jcv6IlSfxui#maCV5bNHnq&(fAUO^&97I&u) z;Iu}lhJ{8N0+167Ctg645@J&>?NNcp9!)Qp`$hT+kJ5QNC^!=i zEP`!UqzA8Qm+PMuCPx%1Gpg|XcJ_Ht4kjXNas?xog{__n2$73=5i~(i)yfKZ<%5y% z0vH&S0N<5juomf6U6yy7eOx@Ss92)hq;SqVW>1j&O3;snXDQ3sd<>O0k(Zv>2fq5? z01Qlntl$OZp5IRR7!Tb*L>DTB7oE%o8LC7eVGCHi2r34G3`19m0f12FG?BlcWTjNL&+lzkI1542_51ruvh^~AhCU6(dM^4DmsLrzRPlv-d zf(VPsD+yn>sSIouJ+U6JHBYa*Nx`nNYtN+#zbT$-5*Sh=M0NiFA6!^fzrUIJ-0yyT zEokE!m`-!+@x$2#t`gGTM63;{{VU+;0N~Ps)G?{cR`JJzB2XPJUAPCy2EQHvILDFp za}Xl`06#uualyf6CEjWO0FRu_N=^amvHJf2JLJM5k%mrYO*n^syo#eei3OBMXrQ-~ z>&iU^tp!%m^wS;-zHBiOkXJj#WoOS=RH7_kk0y>!UHk>{18nAMm+4I;-n>;Mr6nt& zRvWPBbB_a&0R>GHdL_W393Tt;VvRn_nrOv#Y4N#>y>eN!(jL;1|*$Z%w;C6&3E&*wErqG*R=-Fj!GN%DA<1OpZ6 zWX$aR^}`~kB2~t$X;1|K1bmQIj*(@?@=X)@ysT0%Kx5Z=H8bQg0-8Al z`QOixD=f#|zqq*m&j5s+VyGWGeef6g1b{Gd=c=3zd)~Zy>mORsG6Q2gVpm*0- z*Z%XqAy{NJx1QU-uX*NxF%@%{Aw?`={AY*X9V7YoVV^(LiUhsn<$-(KEpIthuq7yS zNb#T7`0!37%N{xEf8O2kUSbsD%-Ns0*Is^)%bL@s@y>GDsyRF7W5*rdHIoh?f0;Z$fL&f_ro4xX*XP7t8mN#hJ?F%|^L!hgo!b^SICq(N=ThBg zQ>VmueV+FDW{VLxA|(u3<2s|1@c>j#O6u~01mT~Bz7Sx9u9Zf|TpDR&i4It@NH758 zqNs$>+--<7gNBE8h|UK@AOH#hy^*766m*-xAmN~DP)DfD#lTNBMa9;(24s&ZW}s`}92c2Ga5Uzw6(}IpXtq&7Y^5Pfh)JXon=m3y$Ak zXFz9&vWX%tjSA1F=e#_-&UJ{R*G?||Y~%}t+JYcFU?Qdp9C4JfWeC9yb>4Nfh zm){?W;oW#nl+5a5$73V&NZri~2M^p~%sKDO6Fs{fHAo6dGShd=ze*!Z%J#>*`aGp$ zs=jKd8L~H9&SB$%sYGH1XhyeQXFYh*js>jvhYq`Mt6cN(5CI?*B#?O%-n+R)Knl7W zui5dt<}isS2MXEN`{_G8X=s!ItA`1MyzkC}L5; z#3*kwJ*X68Q0GYu+MEh$H(;(yd*U!tniN=Va<4-Hz}-ZN5SDino8qLg1h*O# zD@C{mm;zW4uo9Fcba)l`Z-s{gN=GEnDQtN;o;CnDG%@Ov<#;(hJR&?eRRXk(2yi!e z$rNJH&;rpp5*741@`lh+6&euW4loZ{;zS7P2(`yK)u-{}3K@=MxzxQ~=j*~qDF`dU ze(n0?<NcXr5G)VVq~(ZDK&FR9&(Gsz@c`{!q=xgU{TaR{v_&u+`8_1femI^0 z!)TdS6lP%8J`Vg2>GBEp?t1jg-1C_U5JYkGB5lEY`tTxkzFAnZhBO_29w1Y9=Z3fB z-!ht_V+@^p_|806XF-C_ihtSd@)_nS&(wxX{tsRld=yGWdgt~${ycpCCG0O>y8HfN zzxDqBz54nO1Vyu)l)kq|KljLcteUHp@3Z)lQ@}fPj!(roy#D}u;08{*yz{PhTXu7~ zlLt`1>V0=jio&{;!ZHDzStxYu5C|e27gUa;6hE zsZHcQ8V>{pN@WMu+(bqLN!?oFX@OnnFb6f+n6~O0wmJuW!I_1@t zetB2Pr51o83)|_ytRqxQ;22m(*o9NS#V^l_B6Koey}s|}%jGmWA@l`4X6(O@6Ws+6`jHX!3oL`|^l&BEadRPctA$J~b)dIh#zL@2}0z8W;w!sC4>w+sBkG zpFKtR;Q0O{<0?>yZB#~k!RPnj#NlwxeJ)0Ep60$WgyTd~NhvvX`E%?^E026{2u;yB z9GS)1Rkp{0KKSre@KIPfOuH^M+2mjiSCJlqK{ty_Fga_Hvd*tSe1EAt+$C@- zHy(L|&it1x4|2(0)2p4G@z~LdhE}YLxyM1KpI#su773%W#NT%~eE7iuj!=l=yv>8| zbvzKD5I~!TaE8QJV!eBcp9&;Sxg3?SWAsKSaX!MUhZmx|sc`SMVr z37MGDsG3rK{6y;p-4v2xrO7$*uwbVxpsu-~zOyr&cD8^GwOY{Duy7^(vJgT?77@rhBP)h=Xi6dHfAAbFf@)=a+ zV`sLw9K8=OfKiMiLaqr9PS5kc0=w4&8c(uo^WT1CPR!VBPDU7O{CEV4=BuwwH{am# z(@#wn74LxeI*Z`&6IcrrN^!1n?}hOS=#_Cc4XDRD9r1^b!afjMoa&kJ!bB86GHu=x z@y`2Y@Dtfe5D|W>VsY0T_$5$Vn(%kmJae4;^Ww>RkG6915B+OV5|tf}Z#=j;Rs5M4 znI6t98-H#+cyL67cC-^a8vK*Gc=l2dN?{&vMaj9P9H+ zXGw?8fp7@KSr&m`91s|M>Tpb*pIwB@Ca;s^ln!(=;rv4Miyz@$98*u9%)1`9Cc22>xcLA;?jIo zz4P)r>fgtN4b~M9E~@-t-e=Gz^^*WdkGQPvd-BRkN<@;TekN0oJL7mFHVI47yz}$n zC80=;w=K);@PSuMHIgb}vNCJOkb9(JcMImJ(UVU%;wpw2Ft)1n>EcTXQSN$infvD2 zc|}oymW^WRH^kuz!l9(u0XZMX9%2DW9+}(e&(WOCLJ*@TwJiStAMeZv>6&m&_U@#e z-z$-)mg~_R?D_gz06pI{>m9`}fxN5GMJ%J3}K81sHO^0Ylx=m*1^ z{{TKQxjp>fUk4s#0tigyE|Z79%;I>{;DT%!_3N*Ahm`_578%5ri)c#4Oy!@ZBE`F zT=;`FYKn!Jb!IMoaYZD>e;0w{4oD{a_#=CHGcM%)mHxaSA_E~9(Rjd2If#rtOTb1C zTwId;@0Tb*0LUpr4~}-``BzYd7oqmmmp)i{IjEyi?D{?Zz3lRYArreq1ZU2_^(c{1 z5poF7m{&*ChNq1Ri#aYCUOCJ4@X)tQQAXVUnIAoCKqCY&VC*C^L)M-;M@mB;R23-5 z_iASHjkJ9Y&BwC2jXW(C!ixyysbIB-MMJ~Fff$Z;riv2Rmho6x#X2)e!Y!$px5-M> zUJBqGQVwufb|8g&C_$KfE@p>3c9RBJ5jfk1-gSRoP+A=oUq%)OBY;fsf+wBek0QdS zzB%K=RIJ)!sQLBs2ge0n(MNH6E|izg}q(A`s<0)#2R#0A52- z)jk92a_Rp7o+~bPED_INA33vM3PMQ*gcF2u{rq#|rXcpBF?oh_tnwrg6hoZQ(f2BE zr$8EaFV8%GE8qJEH_bUNd^cwQ@xH%COY5~#PV3#=akys72 z8g$y;IjKEQBgttQz?l_PeLQmd@JNhR$)m43@|oA1NS08O9(^|U{`brpUG+Q2R?*Hc z=gtAgIJ0=}qW0(K#3K@^P*6^k()NAt04j~Cwc*rQ`gnc$h>$XeF6e2|@7Z2_ zQA)-O?R4Z*S3ixQz+ALP>c}q=4AQt`C>!1%mD4(dd(j$A}prDC~OT zHmxtC=f(kHT6HycswvpPTb*KfPvkK_-u>@IQdt?*6&0Sai^ zLRmz~OF8l2MeIaQ=AsVn&3=VJ2)sC66sOhS41fdV&&X=Mdfey8gR!D{-1J+tcRKJ- zgnbnvJoJwT#Z$omDG(8G6GZ98&G4~UrBu&KtHA2_;Y3jtDvF5`(twvoh%r`CAOxsN z+8`&x9|8vfHVQfyKaV!JYZC&dqW#x5#R(}KqOj1@;E!Gcg5%6)>N>8MgZc3X3Eu?9 zBmp(m`-znVpk_4D3giRV6Tp^5b&xhe#&W1J6Ffo-c~#Vt;qFm8@ zgaujlZdE=wGuHe8N61>7_t@pP-#$ZzoTZ4N`Jc~R`H9#8dt;_&w&&-3Daqe74Ol`* zmUY*JvF5x2>R+<^xW7Q5ltcn_MX&jt^WvXb(}xxuClUVuj|0lQ8EK2A=UFVjW?Cl+ z0;ex-)&4sHx@3<=d;OmrYvx8`pgch~oPAz+9wRQO6)0e({ zAgXYT5sL);^Dj5jDd;pQRg!)_^JRR1@-P|B@)>U*8E1qCF##gX`{k$n_;Nskp%a*G z`?Ecs5U`GN_~cKMkK@9nD&`d6{OXtAkVRdMm{s;l%A}9p#Y}0fXnwElH|l*o7OeFZuI~E+0sO$}O$bMATM|RInt- zhXDCNS3x2aKqX@bY44tUCLU1I02-|rJBwMydyOn3&hUkF7>_Spb>@^YZR<>&uSdrm zcn$#N7LecrXGFfAC=^JVZc>I7?KApNv<3G<2OT`!I2dXwiit zY~zS-=g&S)rsBtQe;j>soX-&`t+Iz!amI+so8Ovav%Q+)WO)YhpFT5=1ELCPZgJN5 z4MIYn0nuf!U&o^O!hm!{QWmC7lFm<~1;;po z#OL8z2cmQ4TY2esIG?u9(dWD(WOxjid}R0JOQ~f|$UQ&9*7>DsHH_|NEpK;|$dIfj z6Papt*>54%C}b%FK;%h2VIKJKFOUy)sir-5KEBihaA!4jTw}+$UFXRTuT!Lz7Pw;i z=h%3Fm-4p1o>T9?6$UCEe#7$|knf)}!>Qf6@j;VG&t4})2tzxruVU_JcIJBB3g#^Jsy2r3A#3JZ=3 z)?;RoI1~{GU_@Xyjy6H@1q6p4X~v`Zl%6grPGSO#f-PmDGuMJAFGvJPfiJ)iOqp82 zOOPuRRa$pBr7-fejHq!zhUfLW>&V6$%+tS?+uwb7_T)nPg(Yz3vkdSP(DlCaQhjfV zR7=p<`r;Ze{F8{lCZt{b)IgV>H79^Gc29ZiqH!k$`FyBWnU(s|za0Mae0dOv2Vu#F z7w75cfHY_lhb_Bnh1ajY5Ko z7oGST_nG|sV&Gv=K}qywD3v#(svyPZ^RLkk7thf4c9 z9Pkp7@}`fiQ}e|;x5SYHn{~bZ`}|0rR=cVlwGQyWJ9jg|TGR0Sy`d+!pUUKZP>Zw` z$Aa;D@N6*M#3H147t=2icsta3CKl`@vijq{2Y{k9BU0K9siigN*8fq?~!oG>H#JiAGNQHZ7&IFHY)`Iia^Nn3yu z*R|u!A85dF8}T{gpN)KQ?roGOumd^M=ZWGV3^u}53SG?39`A@kuwS6@V(f3M+W19? z2>~wjLh^kx*6MLPtW2gz`{dito3ty0W89A&eg6Pr0wRe!XT}c~=*scof~*BD%qVaZ ze;#nGsN!=Q%bw%MrSVEZZu0s@&@TCNLfE#j$8G$Za>9&rW`P8V*2t&2LHn0M1PD zD?%QoEVKZt)ctA>K(TJz58|NJ{(GkNzqf$zmM&n5!sA-Uk#I0))0AA3I92F?;1wr)B5FM5K zi?Vyq_1Be(>RR+{`tSZcuG4~w#JDJjYp2DYF9=exq+=p*d+zUmiGd@~0-lvW&Av)w z!N?%;pUCGo-#!<@b4=|+*81raZBY`;b!3;CnDO85%Frm`W3GB}9p}rbbYR2axJ(W| zegtw=Q*~V#oqw6(E>a2$x;})?G`D>16dq}c_r*ADB@PQ{03hi~FLp{E{{RsWD$vD1 zBG^x>&1KWx*=dgLB)ws<=aba&Oh(SC^RxZF4=s?l2Zv-()G1m|Xwz`8Au>XdCOog0 z8$}3@=0ayrR_M5Wmqg)JGCy}I;=qFTg;HVHtmo0U2b(N=Sz0Px+;fIQ%~e-Wj!iWN zpRb*OUMpB78L6&bUtYX;bUqA=%9WBl_0D)z3}cjc_~6GKvGOLI!!!7XeechcKPu}> zj&SO`{8^{5!8+>a<=!(diUwbgnrHF(zJ>BS4zV0CeUBz^KRQ`q089$Syr9Z{Uc7}< zR92Z1xlk*^eqRbh{Ek1BH)7eG_>w6BKZ9YF-28ZeRZdJE3O_r2_%E)2`4Kqx$Mt-I zcT7;}1D zX*%B)C=+VMS7~==Ph9vb&4lH_%fQ}mTg~y3#fV}jGODBAGdEu>5$Ob|D9xE20IKE? z1SASN6H&DR68AI4Snved&R}tcc=8cYEWDyL^~XA1I`9kxF`2nmUN3)R%C)%Aj8jj7 zXkb{mj@7_m+;B?bxdQ*!;70dF|W``)9IKz-NVHIV9~_UIpZ^z z-fu8bh#9B`h+1f2$msY~4O<9khBgb^5UO7ySfYs%)XfJ}SrHR_5=hW9rl6r&f+*E+ zV1QJJ7p3Q$K0)6-^cT5|cWKEU_wfWB3epD{`@g;~bfBtmrO&~?B>it5O(NJT_t=$9 z8GGw*lm!snrobK6EF1XJ06Gk`H;E6=Z+qr0IQ5ghFMl0#$>XC)Oq;&GP4)bEWvrgD z#eR8*^mi}_7!F_kr{BM{`j4+MoEhG*U4bMt<^g9!_%5LBgJAqSLR_s9XPv;%xPgD127_>@;| zDWvQbP5YV2=c5DC^c*nY*7N1|smXuz_VeBxcz`rYbm~2xq1%AFDx(cOB9J0^eBk)4L`Gi5GzxNM8)km5_jPm?uJPt;6j1;@mi^gq#aF5Qi6sgpdG?RYkt#U;=*RdEIKRy0LNaa2OO0;7H2vpy2s|Aq@qC75U!J3_r6pp>PQ|- zB9?w#o-{0#=Ut}CKKF*_fz-zrm*gUGpG&xS(OgpWrvQy4564$UXBr0aV19J#)Pv$_ zQ*p^o>%Sl4##J%1UFVw5d|GdUNTFR~9p~j|KKyOAPJ1EG>Cbt`9y+1`J&+iQOI7Ax zJRJ6NUeyR<`z+2+Fp?YvQ!&;Z=NCuHW(*0ouLfD(PoE@I6$4f?fZ+Lem|NjWtXKh1 zuKF_i`SY|u6$%C11CPeZ@5e+y;5DOebq`nkc$lz+WI1QNPhX#(H~>Aw{{W_byh0;- zJX_8WKA!xG$(E!=IpdC#eiHZv0jU`ZhYX)+4$$KyMom2)MVG}3{sIvhNMo!~9a}Al znt0n$qA05nFTKsAgEz}ZWPnId!SY$2{KW7G2rYSWMjD96Tq`tI7>=g}Ix*+xte0}V z4i=879K9DIh(|C4K~o(V8N|^|Qn=+a#D+68<<*!Fb6`;CIRc;9G(IS#Jr%s?=L-Z@jOCnY65}58&lU@i~HttoIid6cZ9h!qEs2m48zj4xEaXs>gS-6cgE_dKyrk^fv^;! za4&$E{Yo&N;VG}KaBa%;24)fsK0YTLE+LfUk|u22ryQK|;T0ysA6+K_-+hmiC|wY6 zkH&|7xcKp4fC)|wEKvgAuO=y=K#b`X8Yaa<3P5EQRDr`qSeA(Bd_sW`P=rJ_Dv7HJ z1`)Uhp_kcvUDcRi>);X{GeCt?^E`)&{SM{FHgD`NfN%(fC(I)~9Gvo(3O^TJ@v5)pdf1kadp;WVNVM|j6~aXP=B2E}OD zTIT-%cE3N6=;N>6XI$s&uMigZgSC6=yX&Xlgc|D54WT(L-&Mrx0)Y;2%*VNK--8}W zz)A`F=DO3=)8CAxh@5hwW;Abe+z5(Vci5Vb1lc>DDlmTCe?z*Go053cCSFTZo$9&c zhxfq8SoP2gF7M;xx5$NQMK&n#gDdYN)yNIp_JHj#m=AWXL`uAiVWDS zAa+051Ey$o>wq{v{QKj{h2T$Vz2`-~xcFj50N3T(!@Ewmhj35QS&v8ZWADJIqF^q; zGF=Vr!tvvX_{a*dQEhC*N7t(Q|ygQL@RAw zH_D@`P2q}j_lL0M&nOC5q8`s?B!N>p$M9jN7omO42LlL%3^^_O zFDNR;vRs`be?I)x9HuG!9Ok|2zg`egc$8Zbl67AGeLf?QXgm2j(hw$cC!{qPGqXoJ z5j(ecJYv8xfYAgMDzmOW_sTKI1{+#Q_10dxLKL-|E~iht5hy%pQG z?eC3JLz}ufLx;Y4_5J$gC>Z1nl&tTG%lW=gQHLMM=eLvd9DH$gThx7ryyX788c2B; zGKzX(EsWVbcJ!%L``gXx`us_YDO3RO2UYq#d`^+1&(WVdg?3G2PPVJR#JTyplky)HqYk1x{X6tHa?8XmA1C z+PqAXoSv0nF2i15ZTIzjI^te>x92a%&wJ)i46|qnwoU&4ig+rw)^jb;w11DT;oc}j z#l08Xrv`XZUFFpp3jd!F{tcTlRJDlcX+?M}SC zvVjX8OaKl}`}t`Ygg}lm9-nVr`1B}Zic!0LKDX%daV#L&DV_a0n{3}84FETT^X!?{ zoOBie5bzZ`jrHo^fG+7YD)Lu=rQ81Jx!P(mX_hL4JH4Oni~Cbd;nUUv9~ zDP9K}wDe@oes{o7inAi>Y2Pc(PJN-cFw4puzr|)8)4&D14*@xy3|&A%@X=316ugY1 z643Tj$B-C+gpS9G>=7N_V;2*esCus#(Y=|8isb(QC}OVt_V?5zD)zLAmG7zZ;XE!h z#y*rg;ym)t0+NDcSUd%5jv*WQJ0n05Nw}E;AApq5uTp{6+;nT%I|$}^sgQ+5HKJm6%`xJWA0^?AOf2}Sk6yM{?9BC zZFtL*l~0)8sNXL+ASfF%`u?AvD_q46UB0J2zBS3i?5#|O#W zQ42KLd*w6p>if?EsNApP`fGAmVa( zQIU4O3m7BHN&u)wd`|u)-vAnXT z>W#zW>G4b*R)FBPr=kA<9OQA}4!cfPtNfD=Z%_@;MqEh z{ln2bbZ#1*xe8B0+moC-c(_)CUMcr%_+jCKDbhXzS*`iJ=K0KLqJ&;9+3Wqo!C}DG z-Zya0J^h}P5^PzguXo?9J@k`7$J!+OIDLEKvGTYb1KL2<<@Jdzz5pFFIQQ|K+r7^q z3W{`9OYpwY!8-_y(EDl?cPzX&sz+~?nlOf@;?c9I+hTzPyzNmne?t4n%;?EV+;pA-nw0~l`8pU<>!f~bOLCjqE%z~VR8Dh4=c z@4rv^g4%RB+D56gCO=FI3JD|NbjM?u~B;^ zjQIHM=Vy1s&~Z~bO=fZJ^xh|e699@@_nrKDOy|yfOA?%NU8(C&cRVL%MH?Q zI!cD|b*sn!0DKFo_0T;*uKa!YwGjRk-F-Z7312nz{0B_A{{V-s<5!dX&(8JC{j28@ zS(6@Bc{t|r(`P~r z-{$y>hgksJl=%kd;`p1*%X`xOP~Lw%c?1{arGoFmna!uql2L*)2vZ(m2#CxW!146S`l zb&!+d`AR~NYV?5i{eCZyL?YskE}GM7e;yjNwSmbb(yJRGxjZzaoD_Lk$ZtjC--*pe z)c|90DsSJ%ehiKYFULR5Z};QTz)*;+@2}`STrQaU!pFB$xesdjA>T^xzpwOtc)*G= zCmioN&*uF46Oe;87;tO67>R}BRMMp)j59ZHxCb1*d{I)>yX)1@TyA)y)#-IQejYEs zuL7aok7=({e|+yaxf*5S5j{@jUEK7Fm}t8zvzsU5)7j#swk|ml9;>r%$LqkZGjC?R ze^19=1}KQ^ie79p-xuq|BTz*N`ONpn^4~9OJ;2@FTo3z?3=miu1$_Je0PlP(P`WK| zS&KJ}`S5u&g!!4heEojW34_cKIPLy3!q|7Eg zN+Z}Yy62Yopp;dFhi_{IF@l@p0ueL~r7JX@{WD((2~UC|>Rw+?J$pRZxIeCc?f$2Y z75PLh_@A@<&l5VGfl2;9gY^wagE zUR%m);rGAhy!cZ9$V;LZQ8#&AIPsL$C@d(H4udfO3BCb9$UsT}mlUDeDxU;u796zR zfz+m~Jg}tJKww4+9V!?LV_M-03*NkOw|#iE7npyr7};A1>iCG2m<>3HwYnbxo8Vn- z5ubfdLHWOn5Miu?>MGMkc=S2rC|E)@0S>f!AkIP06^oOGV-C`b`Qv;*&_EZuba=gU zOW%u}$)ahr-1z6MbUYsXu1t9>O#&Xe<4pPTZ=|_7v;9ie{CJm|m_*KTnxs&&h0hQv)~{sd zPTT9?&nPaV!6>jz8%5xEz3_l6xR9=b^(6av@H|fXyPtopetZU%qrjsPcPX#Cx#OU6 z0^|fWp)aO%@c3a&Dcu;|w*7kh$%n6@rlP)rAB^PjqaSFWQAVcS>zRBX!mMA}zW)GO z;okw;31%o3hJ!$=TNI-J+LWpZ9D)g@tE!;S()J|8e!U{R1WiTnJnuLo?wwW1*CZ98mX5IeuRVB_O6QH-ipe>zlxLuiq%VT}S%)GtSi| zIjvy^!sc=LSd9(C$d;k_;y4mp9AI}iu#0ic;sV?crU)Fdg7Uc#0 zA9uwR=>bgVVLnbTKR9_&9j7(TNY8-da$Zx&)*HikFFR+i-<<30I!~W}*Mh8Ll*5j7 z>$bL|JPPFT7uq~~{%`BY5~#FlJB0iGUU=|YWd@r3T;cqb-zF9y9B`kZ&tDxrMNlEC zumtD&_tWkgfHa&<-(HWIogNWKA^}EXAD82vUb#WhlQ%c7l>JxH;OM9joEa_0(`@%V z_Ijs0D;?VSpVxpVMvtoS&u8E7d)=x_UN{FvC+*c3e`|<;CpblA$Q+uxa@=AcuYv*~+ZNINEPF6g+tl8F%eK;-Q z0IBiy?mu^q2gaf)lu9TX8J1#afI!F$i@U=K-u+$jx&{O}Wk-U)UH;PI)S4hj*-?Lv z9}f>udG;ger!~Wl2S7A?I&l(OT?<3>`RcY?goP@jT*l2$R?qV3z*?^7w$L#HR%iN&Pk5W;+z@qaIF%b?ngd%*o>I!^4?4Czz3XIn(fe*@?UlFK?puEe- zdVeRf_zDF*H8iHl`28{-8jj9-w?^LNLIrou++F(KrzG|y&Ue8}?VEVr;dgoX=cbpQ zb!nY%r{6w}^Ja?^ICgwxZyoyaR*4ui=bJbmllgo&2U;y%Ehhu>GxYLS93O>Om8z%_ zDgp{3=%}etPNOZ2lYBu~1fJ7PNfK1XFycNDDU?;uGVErDbhC%W1&F8!1Pu0F9|Db1 z6GSsH5Df|nD!v;&D$o_kIC_&_eRv8bwK++;j(g9z*T{ftmkJc*{P9bhXO0@HDTuPV zl;`2=QiTQ8A_>t{`8DGm0_%7}at9}dKmpWG2g);73LS7ZMC18o)h+0Sp;sd(Eeha` z6iNi7(TOrg1Of8KgGm7sfk*{8<>WKxhcV^k)0;FL{J;_~ zPy8MD=!zUNza~nj&py4Bj1r;5JMID39e9EZa~6lWrz~T{I`D)b?;thc93Dm=K4Oq? z=8u5Kq3WevAyZJz&{WXh%lGvXE0O4L6;0q@NLKke38n*kZyX&Hx8W3NVhZp?ai)TP zJb}oYDvGpHQ2YC1d_puZ#}|n8HgU`N@+O@jWl^~%Zx4F;EG)DqJIwU%j_&7+=%SO8 z4EnX3x$DYSpe1qP<{Yu~^`5+dL1<*N;@8}A@tknQ~*SBUS#FTUlJ z2s#q{mZbK~_9;$FF`V`Bq^o{A@TlB|o6zSrYs>M+fP?`APJtzO51Yw#Y0x~V!&ZL! zf6L}*ud`Nq%LJ~^uDs;}GnM|^AC9wk$E#;badTd?`R4crI8-M*Y4h{I9{fGGj(Qv> z@xI@xQlh&J6n6w|+<$TBHE24qbR;$B*Tj`!h3N7jn)4>O;* zFRwD`CUIQt_&YPcG^rI0yyZyk=WHQvfJIGV$vYRG8w-6cUlF_z3l=uzGz#`R!<4E zMZiHt0wU)c`<@CS3mOT`UY-yUa8i;^BS5rAp<-rR61S{Hx(JYM(Z-QlkWv7*lys)Z z_1_#mKr5u0Y&nzr{%4RT;jB2pSjUgPyj3Y$-Q%1{d~d&f_$?Yvbmu7n{9b=YfGrYK z6%^E#9sXCyio$h`EjbzfetdBFh5jm`_hLj{ zqp$;T0l;;G&xjLSO%QjAJ?G8o^E@qq*qJy_YMlHj;1tFxV$oj2R~nRg@JLCEF&{)| ze{)Rn;uLj0gsqY)Q&*~OLrjH70izvBqG=G_h=ow#RM>%D9*+{BipGK3?>;%d&osLZ zlu`gFptf*I`AStGRs<;wQj3*zu!6f41<+5i1-PLu;}nen#o0Wf{x@^QiN$IcY7HVy zAO#T8^w(d9CEM*DwYmuq3+&G6di{I~VnZ5h9p{Grr~0RYx+98Vy(VV;4eP{2Y!8zN6zpkxXH9!PjvdXYo>KMQKju zy?$0a_~i{F9NzFQpNx6(=I8}Z42nGR;`7fqh7prXc(Lby&l-8i7bbE&@S;cKoqSZu z4mh`r-UkL;%<@2M0c2rFp80PzmFofdD_9)p-c9Cx84T4D5wl(<&)oImI>Ggk!gHSg z0FDnSYrL*IRrI70^s-a_)__K72!vE{=y2 z-^qWD;L;j)mHIG8;Nz4bcLUdc0*LISuH2;;o>P5zfr-HppH_PK{rHm= zG*AUEx1WFMd?FYxJ!Kw#AFb!aRFR(;KlM3tc2e^8BJgG6vYo3qp(wt(tA|*Yhxg$kF z!MrHq5(5NX^hZ3ziu)sEjbHM7bSUXOG;SC^gzGvyRe1wXP5@Bg{{Zil#bmVKfrJ7$ zCSyJG1z;|U#TFtm3B=z!7>|H?+dc>YrD+rcS+A!fGji=Wx6y>%iQhb!__RRD&CgGGmbrG#9dMWanUeP zhb<+FdV{cF4dC7Cd>JUm$96Z}x&3Fg;^$?Dn_~B_DYHP?o zgW|v2H7ewYr-O-;ODAdI@+lOpWg}HYZjQc8G~pxY-S1a^dEXv_IH7)}ujc-rA+eVf z1moeH{{VU92V2S4J%~Cl88ceJ9=Z39U#i~t{DPvHhbCeciQ9fG-xoPDKM3%GM^-1$Jfe%Ve72feNKaChpng2fD(adCm{V&FzC~9Sp2xA%~)JY6}$t zKSr$@tFD>@XdY0DO(AVsghGy&3l#vP#D$13jc_H*Kpv4w)JV`l5ltX*$|9T3jpTtL z%JbDKa_MK^hR}9%-$lON`RBE4<#<3bT=-B0g;RV+1w=&Skl@`{4f>EGl=DDjNlDPjnC^2eA3&QjzdvZeK;R)7@^Y}!(>pUzucyHtum8efQh}Y7T=uk)ep45 z;BIC4?}No8MJ4-Q^Pc`*-x{G<)dNrC;(s0nqyE^RF)^2K8eV$TTm{2d+FY2y;c}-jcb} zwd9^DiWeheam#ge(E`tp{$kS_WCE+k9gv=exJylc*IJK9yl`x(yK@Og94#U zA=+zZ@OA6QaBv1eanthOUFvx7jhdBJVkqdLK(X^Fa$$`tUi#yYo+p3>R$sE9X_VkS zcfyd?s>Bika6XJN@mhtau!gUF-)rxW6BNJ)oo7(bo#FkYXsjJ#PS5$_eN;}Bv*KcW z{{W-kgI>*UXH-Y`j`!dqIqc`uE`E1y^1u%W5rkdkptfCo`3eY4q3GR0Mtf&r3kICZZ^U;(X40Wtfl&w9?N+ zrvxejfWQ(JERAE^$IkqPh6}5pVE#|INAS@{+1}b{$BCy5;?EeusE~7x-cO3pos_3U zfO3qB$;*bV=;y#3qG77<2%jxtC&}dz5QrOIc)W1_JDy&N@#^+G`?b7&JOIq>G%+{6 zzJ5MDq}EWK+j^hBe_W}n2uTy~KUVqgVPEha}DaC+%l-u|zJ zG*gj5RlU5<$#&$Vu^RpF9NwR+;cKX{6^?Rf6DI!ic?hLJv-+EQ&wPSx2`~dn7zdy^ z_2COc1q(vzJOCQU78G6$>>_rkXo6={Gxf^p48ML5M6 z+ImQ8;}z{5H#4*#2=d^9ZyS#%#%3ai*QJW}4u8LF@BlVRdL9pcgPsFA=rKV#A9RBL zH=ev(6$Wd0{sc#IGr z5~MtY!;g7Lcs+oPY^hFx4T<)nL9`x$2ab99nb!COH?xRUIk6P6U|Gmlams_Mg^Z-! zy~|@t09-=H*h7cDJBi}yW7(DgXyZc!nOCwRlHE@s|3;m*9lWWxJ#yzdYG;pRa?OR103dh7gY z%1eVNdQPL4={fK|LMe^|VP@|K^?V&Tkb0;`uT$P}<2)v8W;{(%%;EI>q|n}&5{2A4 zz3w1*f{+@{>0}*s%szZ!X0=uCl>Y#nXT(0nhZ7C7Dg1nLdA=B4#HkE0+vrcP9Dpr( zzy($soFAd`l#^#aKM$k#oq1Y`4-j-XBbD*|c^hw|!geROQ<``>1ppwXI*_s#Kb+&j zu&9IxRA7WC77u`cMx#n~vw(T8xBAOJ8@CMFB(_>K^^c3)sn9Q#3hG6|^Q0MC#o z@7uZHLY!r8=)_?Fr$AW0>Ha(|@Fab!#b)sQ_)tZ*Ca$U^{B%AAP{n!(>cj_*tIl`^ zz|=UQkFW2|7$Kn-i?<0lU+VZ63J4L^3ir?DcgZRCG>>R}fu z5Xh3u=ie^RLHD3=0HG)ih}0k@fk(Um&Te{{m*d>%Uo%Wn^E>0_VDNG7c+x%`gUQ3C z>%H~p70_$Z#M|$WoBHyj05r^aP+kVT!oOZafCrFo*C}z|Tl3%!>SxMY(~rkasKp%t z0pXK-UWwEv2gGO$>rZ_;tGBPviBvk4r#erLJ!h_ohO|Vi^>}*!0I!$YCv)o``cAy& z5awYxwD$LUm9dt zJQrJiDktj8GS6uX;#nhJbDhQ62j}m{+Lf&wch|GNVK=~>Hx?eM@%~Ro$>$vg^Xn(` z{{Wu60Eq7$^T$4qT}Q7PZ6%-r#x$zOHyeCGA_<)nn&iAQKZn4mq{=)mEnxdd?J7p( zRdFqja!1zx0GfD89J=#cKh^Lzzw4#qePJ~$pO>I>?quLm&Var|E@LrE9gvEle_ z-VF2M32@4TUa!AHe9|RgU&}|a%=PI!N?nt7^Bg^F%sf;Ra&j}C9zQ(%d7!0Lj&mV} z0GxF*hw;7xOck%V+tr?Z4dt^Gjo3y?NPQ|P8VU+$pj{UTFAW({q@IS#kL{W4)1Us{! z?|9>%3vh{25j1MJo#c5q@ydh%Em+%&pWnxvrmo{7KHNNY(XWJNslej&QsaIntja_> z6$AoPTnxSVm_QMQI8MY*%KE+wTIv&T)qZ#5tFQ_huL2UE8L4F+GA0$u1^T{&{{TDj zqOQoaMNL;jZhd<>B#P_P-YGik&7m+iIJ}FX?>PD&5r7$Zof&Oen$KQK0@x*>=-NmB z06lnwMq!3}_bttxCxR7_Nn3{>d7oal#pEyf=ki~F*PVb=L@O{lm+Up&K42UW^Cg zYD;{mMhZju+xcG}VMSw{`V7Awxa=G_sm!?3kH^Pecf{##;k2BJgy*RG921!A;A(}cNsb3o zk40?8aRFMe7obEPbN9Q)fsIH&5J&O;smAyMrc4)Cs!-16ha2D^utBX6BH==hf_ zVu|#4oS#_x@)fds7-_`*bMN1PRumLV+ts4)c60B?9!Ye4MY#3D{qXp?ULFSC`^n!E z13X>UAFcZT0Nv#;f+#fpn^(L)jx&!kYmsKC(K+KpL~1n8AnT#ioHW{8R+*OY(IO#< zRlK8Y_|E=(Hw3eaa_e(Dx?e19cX7Xt(EGA_z(l9Om0ma~fydp%@`#Y=w_`ZrS+nX| z_^3!D%Sg`6^>!Oy3Is*Ao8COMeg0j(4GJn6qJV2tNzy+4yYc|5z}6y-PEpk-A-Be}LIn;Uf|^r|o{M}1;M{{REnB{2nhP;~dbK1C8B@>t`eUj2Sk#L217sYr`$5Y^yJ1@?%F zFRhM141zr}*+! z$WT{R&N%P?0GGfJgGU)dkBK|?;DVH85jeD2{W-sE4je9moYd!=$NHpI2KH0f?8`Xu zNQ7(+1;k6o*90~310+!-rI!4j$vQCb;v?KgLvnoA4s<;1wE~N9b{|w>&+t&gsf^!Q z{EzqJibEBmmV^pr_P^#uY1oO6rA*xGUGRzojX_}MngPaYb>jw$-qxupFfX^`z#&Xi zLygPnPY*!^9&(W9m2Huai2PU z=YUiq&Ej|K^!w|?BEd2=uw{NeettY))LaEQznh```@|w4%yPeiQrzv=!ZhA^wj&in zAfLOt;zPrULzxUd`k#ZvRBUc8gOKL@ZyaAKO1KVJt^%dm{JY|^*Jp1SthJtiJ$we# zjflBplI6fJDaVK?0-U_Qbu~HeefaXV5!Vl;TH#K&>&H%=NWLbgJ$KJuYUK>Lan#>M zMdNsU3)1!&I(zx|D*N+*@Xo+zqc`>W^AU<+GT*{IXZzBsq%9hqIVa>ug(G~SrZW~^ ziCX4~&i6dg;isFM$;Z#-JRVFz-bfn5>*t>s&LRZc%3JR}?QOLvvyfJ|PlEUS{=nfy zIbM4B<9%Lkj74VDYKR>`iOA2N35JkCpyBwi)03YD!;=*K_Dw!Lap3}TjT?^(@z#R( zd|_~)aAHl-JV%-9d1vFFATdnhelXwl>+VY>`H>vA=6pjfe4$l1 zm@zHS_4nX|Wp~i=J+_&qe%ICGG5hol*E50fF~Fm816Los-1p*mwTlXzDG)b~Pc#VR zkyeE+;~25~@HlEja8s03O1s=W9yw7dH;C!O>oeas#ONZWBbXC@{x{y87ne}*(dpvn z@8`%P_^-L`UL^eT^We1;S?>ebnct(d@~>5RdY$sGf7{H80j-(Xt{08YY&Xk7wFXQc zCm+XOzYr7zdRGcMa5;GVk-5IUhLcK)%?f8)ep02+e<5rq*%v8aU)F^qA|b_7Vb-boAN0O&HS7haRD z9(Rul0x$$noHw!8>G6UFMG}I;1$gvtTx(MVi;4)vpql3hkbD~<-D(#S)WG8NI`DZC zI6}g^S?F{j#U;uklNC(C$6C9D@ru?;rfiOS*Pq{ri_58J^ZLy4 zL4-IoFFNx$f)YHYyxg|mUT_HqVVnt95wFdzPZ$t%J#*6A zJ}v3r9c97EM=9mntS!;f~c92L8%U=UtgaPs?N2sofEqF{E^dMn47!HA%*wG z_yRb3soQrX%1_IQbC z@8#Y6{XV{55){Oh7*i;OVs}q8Sb%xsb{xMA{{Ujlh5Gh=wsGVraXVSm-+!a0#e4SG`uovwt4tCu9_Jl#@A)5b_8qHX`=1|=5uFZ;@8#&8`TY16lu5($`|Fmu0|UfW z#yO5GP{OAWu!Z->C(~z`6&gwz50q1*@2+zc8-#kfR#)fl)I3Dq1qCs`I(@(C zsGyFi35%`y`<-~fZJdM;P`6pSF8bCs(T@eqmKTqIeDLNCv8ToK{(AC^hCH}SzL)wn zlgCXFH-m-c7JJX)(E7Lh=4?J-^0zeG3a0NH67!|t+O1Q;y}bLsch`rdrda5M-o4qO3#eZ_~9 zDMaGLKy}QzKd%9*uqXi%O*Ndb;qf65-j!ZS7idQG@jx^H1CYpBaHg%#0uT{XkSN5_ zP3^?_BCA10}g9 zXV1saoU5GYUi0$v;>HFAqhrFEpI&^K3CcWK$oYo zHuKjnfJSLH+~;KeW^VWu76BnfHw14S^Ul5rN&y%YP~}torfg6M7htW9Nx1SG*M(Fq zjdFwEUlVih#1SNH2qheQ`S@{fjA(YDFgQTuc`rAJ_<#G#Kkv{Nv`;+GZss znGkxjJA4Z0;Xs*^XrG?__-YZ?-{R5+?mBq!h1-n_%apNSe;b}CgBl`)HRemZ%}ntg zQ6TD9uHp6ec?&^IbxaB?gGEigX;S++7&S)`cm?2{pamx;qBoEr2?nU}NlhOK!?4~? zrRN?v4utpVWUXm~t?7=0MII4Q9vDK$Y4UagjUdM)Ae;mNgaRgFKVJLoN$`61D7_{! zf*%JIG+mzOjYPz_Z^z%y@4!|%X&0cG%$$0ukAU(V%2W_kJ)E$wMF6a<=_7S2(?f67 z@4zFWL_-_AbKmPS_yXX7cXahR_Wb@l4P*v=*P42tPb~697juK(=i53bl$!Vxzql9; zzWeiOh$U!^Fg3%Ad@pSSki80mL{;S>;t?U(j;N|IwNc~=!3Be7E*ftb_VQ_-67IkZ zF~V^id6~R;3N{!b#2HtkkDa?b;As~?dG(_Ak^boRtJWrJGkz`{lgC6*c<7d#p6(&m zq&(FX2m|+1H3RPx&@znNyilaitoTtV3{%5S= zy?%TV9g-&;vih&$(dJBQbrwe3$?MkxuZlrHj6PF8@t=#*5agY-;on41Qj7_H>3u$kJGrQA#WgHxa6>ca=&{#%&9F6RN_^Qmp9d{2o*TRRRi%1@`u* zJiK{eWCi0%$h+@95_!U^pou`pBgeiQ&7K*O0B0gg?wN(}-;%1Apa3X~GfPj4Ab4G* zZt(N)O9O1*1z{TIox<~{f~C1blL2hn{QP(n zR`4DBeJ@Ly&N}+IM9iD#0tsu9E-KZ4zrOs#4Qh)6ICx9Zy`(%wigZk) z0Av{F*Ng@;o{f1GPt<#|UnH4L1j0sx19?5)Gl3OA6|$DFIN|3xo+L40M}T1v_ zZ;8{fR1F1;Q2zeBwNkXP#_Is%2XzwP4NCBeiohaQ<9K=W*o0Eu6>fBJyPakTXudTD zD%eJGmUMD7Kmt)f<4T<3a9;THVM|yRaS(^$`1le4Z~&xG29pY)2zXG+gi5$NMCNZH zN;MN`)Wlyge#)D~#mBs82gAf<{YCx9m6(1JJsMwQgEq3|FGRfAP3sZ^$~!o4-Z zC_f&lKv)`s^4sS{x>ZrCL)<%c))okY&z>+tapbqbV`c` zEHi)uMZQR`R=079V_v{o*Ss+sm^f!0BrZ) zg{m)kPAa~^{=U3c+XE_AKlj(Dd7vyTCD$HJef#$xCxbz(50gna{y#nrj|j$XUOuEg zVdHmP^agSAQs8eP$pyw{fo~AbR|C2l&mf{IR~_Qi=W~zBcp6}%x(o++1BnvT!H)JB zCUEod+j{$elGN*m9y(4v8}a8JA6NeXIN$HZ1Tk50v$>0}Hf*=YLI?&tobfi9x8Gh0 z6fU9FNAvdcFK>w!l}s7cMHF3EsV|5qM;w*zw&87W8R*qw0lMiIQEKJSAylaWOuo6i zbaR{KSCNZS(BT{F{?9i$0x41|QI~n>&k~AkmCTcKw~KRhPZrR#RQy%D5_Q#YiN!&{ zuwp!XK__0hsRH{Vad=|&oWDLmeW6SWRjVG|iR;4mK>-(p;D$@_*G@aZ;l;eplHlIA z)s0pt&K<7YfAgTl5Pe`BL-X&~(l!_cz%m4yep|6 z!-CV73TdC;%+DOfvEn@&D4eO+K0B1E3qszJ+5Z4f2QMouv?7Cn_2s=#9eFnx^XUB; z9xAv`fxPs&Ge7w}kvJ?GwUYez#Mj&40bDtIH`lAk zj1(%xBaq{%hd+-kkX|Dyc}45<&spNy%m8_PBwtPW>)Z%~Rv0wiKX2ok;Ze#;!5;|8 zyZi6NR)*-bm{HTZ{Ce|XeYq7&d=^Y#`p_L#B?&Zgzw$A!W&YQfgHDz^bs*5JOUu{9{{ohs+3hL zXbg4*PO+mhI*pzf=+OaA29HBe@kkENav4+FKQrEVB!rfNFsH3yZvK1%B^&{& zTlNU=5^?7^k)!}L!V>j+3wenl1${#taC?F4#sy>=qlW0txA)`QD1gG0T}Ok4zDqF$ zpb?D`D);j4WdN?KwG3_q9kbQ(QjBn7EP_R#TP|u4fhMB1J-qXG_b-yAL{>H*JTLvm zHj@5G&}lL-=dah1q8V{zImp+ksm-AIQ6lxmj+s8cIlTDcoZ`mtp0tmL~S;vB>LJ){07Q_-O zT4*9jI~*!WB9f36AfSp!u&R|Rs;H~l+U?Zw2m#6U$UtjIJm&MoSceg3KH-^oZTH8L zSV;7Dn+^W}=e`iqSG;aMhle5j_%T%s^w77F-_Z3uBn(%M#B%oj=RbZE%A>t{@7Lw; zr0^E?0(_3%Iez*&PX!-NNyyQ?!%Up~K4`XZK&PV@tKR_+Ks z(uHO)czjDls1uV!Mfabs^USQmU55|Zd;E6zRZ^d2tH%w$JbZb?2&&(KPf`zA{{X32 z^fg2AC$EFog%;_Bd#Z$(uMUmRX;`zC@B2He(ffQ(Pe`7a{330=o=%hu>K^L|oVhuh zh>aRkPG0%s(qE+V0Boe$MK$5y?susT47AF~ad^L;IHp96hqBmDi_h1OFbG{0Urqvb&x@re03rjkMM>$)^W-8btZPOs2B)b^lh=@x zOfko!;&ukf--U(Vsvuz_6!ss^o-2q3CllYv{eHab0C*0gy&a#=kVG+f)3EmMuW!eU z3e*QFxrQpOHY}3r}2B!29XvI1W4A>F&kNC#NBo z%eHb}EU=NvzW#g~DN|62nY?T0>UoR^B0~jzG3xT)!k2+E=nFB0R|Rj9a=)m7f%F>Q zOPY9~V=pe}&))oz=fciLhD^*n-+S|Xu1JP+(Yn`g^z`2o%z;OS?2fe8jNh*nO=k>> zkt+&&@8vVhj@=!+u?#nl&#w}y7DNUdoA=KByr{s?K$K7cu0bM)K0Lu5ME8VSKZo_; zg8KX8d;U0?;53Fsnjs36pNQ?ec%VXxw<*TXeME^LuOPZY1vLy4?q~0-;IspTfbU(~ zFMsTy7_**XOQ_S=RGz$oIjckkN~-UJot=s%f4#fu+XYvxRb0dwnJ%y-5oFv5_G_py3T)f^qYd3qc`50Y{B6 zD2c{PQLx&bn?wz zJ{5Q&)ZO>-<_M%gJ8bkl2!}a4fE61+v2m@ZPkq~zF+&R*#ci6l{O!u}g$*iVVv}CA z^mEA-RjA4Usz*bX;Fumn)DB^v0v^3wPZbl$#X(zXZgb5KgTPCaH+ee=qw(3duOoUu z18NvC*7M8fKv!t#S_Wo3a31*adB}#{{ylE+eR*Z_W}E|Z9Cg>*;szvp4R1XE0KHcD zxVI3=?>XRKgO8m!5p_}KOPoHw`zN(b=ZKmC+P`q0o4|$OREx_c@BGd^3RI#>5CZa^ z-SC@xKO++{P(_JZZyCaI#s%(FL+D{waNay8YY~CFb>2RBJ|+<*qV`{B98+-n@5oq> z&Tbd?>Gkn^NfJ^ShQ0i8cX{hmfw$iiE9&LE9=uLP!bAcT=JtYQ_sTUXPMVw7ZIg~a zJ~md*l6rwJEQ|jD#Z}oO6;wq^iLPna!~h07q2oAaTSq@W8+3gxajSpVzjJA3Vr0`7 zzFy`os^LsR)J5e!LnpzT;iH(927u*=9684xNp}ndxL^nusjM}~ zSXu`b1D?8G{3szcIJO*eZalx?b$=x;=$v=c&oU$Zs{k%k1D$n#yq=wH5RVl8eyTY~PO&6$qnfM;5Y9Gy3xOrJxHASy%@A=O%ce zkXXb^T+$}JPR|oW$`mXLOR9h!7dOg74mi8lz5q7=0KW(~wL%>He~|nKgP^RlIB6$y zGj4bwwPEP>uP1vy7s9jxrzM>?l)HdWuNQ#vqvnJ1d+{W;lU*3sfsGGlKXTA?xx83U zRK0J{f|F%}xHZjyZ~p)|vzSEEF`2)8bGy%wDQSr!H;nl2uUq8Do=?NOeoUSB$AYNd z-Al@A{{H&NRE36b1}Y8#&+*nr;db%riJYy?c0*pm{!hOM%@rAyILZ$X zFn=B+66k=1$id{QZAhwks$Z7gFp&HI0FLf1F$J{~X*rzyV)jf9+`PPw zbI%_y&xL{F39WvYcmDumT-B7L~;5KzjOOf2m{juWzOk8Q`zDa#T-gD1`8>vW9vqZZ6{(KUHUn3&%z|43IcPbmmry9%DS^Z=>3=q5& zFF7t*z3}^^M28_EdJf;7xZ?Pb#kfKd{D;;!z4<32cafqaT)Uq>#H3Hdgy?s!MtiyA zLA@w2J?Zz$=ng#1OhDMjAcW)kc@HW8mz$?I6a^T$CK;c_4f6^YRC1EXvr1vqfVre1 zFAN(lUT63(kciTkLVH48&x1MGF*E`Spgo)GB;oCzWtUVt;&dE$v$w>AP>`)JS>J!_ z$w4_(BSp}<^$uL?!78X>LRcNfbH}fb1t3d4u$0lh=R9YN5JZL519*vpINnn{l#58{ zbDEp~0FCkk?TP_Z7zAZQ0Dkd8C1E5dM=ua0`|*%KQbf|nXuD3~%<#&P0K0;%hC_?- z)xI@D5*3OhCfW<5&roVoBC>G|{O|Mg;{XhN5qoLcE-}ituW#6y(6) zZ64lxy!e4*d3T~>o%P20&l*S&Tdy9!H9Lm+^QmJ{9?A56jqwybQ&4&B;(k7SIl+-5 zS8?s5a{4lPYV}-MXFmOUd_h1(a4JKWSCJTXJ`o|_Qb!4NsydV7za&ZkUI@8iBIZi` zJ}+h!wfZgoOrKs9Qf09F7rFD@_dF%-r}^L+JrCo*8nGlGQ46*z^5WCLi26J?@|||am_^}ruZ)8nQEIxSOIS8cai?fRQg*ZpT3tm7h zHN4K=_kMgJZOCb7#B}5B%)V?KD9nX$)C#fL;yOfP2<5OgPOGyrAh=aR^2t@?Lqm4R{!W-3~}e|+bZiS-rW925jtDbb|`*`Af z_=0j#S>Bs|vwHo#MCcR*pXv372fqjhMJFajlb$#y`$a$%?*aJ*J?9#6#O#Y`s=oN< zhfS}+S_DBIyPnEg-c)*Q`w;mktzjp7(g(~{pjksqO{=BeH zDKN$syvpYzd=c;$HUPYE@aH`FowQ12;Ld-YF1NoH5fDjSI1ehv=a(M{VNgo7-+hG9 zC+o-_)>dj`3@ea~-$UhqTs`BsJh00VyxZkr1OjlBVK^M)U*D1=0;0q~tF%YapMC@p zQON|&7>+pO-7Whgjs*E)tJJ~X0H`4J4hH*K!_AN5$AiKqx3hS}U-!N;z*H3`;@eJy zpOdjiRz47CUBW6qKVk z!Zi#9!Nzgk`Y)^Cxd9|saVjw-lq=a-sjXAQ*(=y5m86@Y^rIU4U7{?7vVKoBq31#)%U@6J&G^#k>JdG+R{N_1+S zi+ksI@65=QQ5?}me`o4p;-E4(m7DR8nf5+6+Z8mG$VW#g7ObgQtV)0jVrW}Xp%e^@ z#0q0I+goMCp1et8DmfY>$!VD5LFJ0bwm3^3BtI9v{6GzS;HZUAWgZ8y^*Px;<2!m2@DtPFz@l%(K_A& zX#_M5?DgO5xZ?5}l9!%+0sat_$8_PW;A8$7hWLpHOzBgojL3T^H$(B6@!<^sPJz%*<$tL7sa%FCgC;4TzulJwTUb`Ee7g5d z`AR1k(pQDzba3~E-v<6_#%!7cp2rEm5n~8Z0>l@s^_k%ZhmuJF%Yp?hiGD#?aG?Us zg41h(Y{CRY#)2po1?0U8R)PirWn#>vSfZ1GL+Qvk)fT?HKWGSUCZOkJ;Whj9CHp@nE2tf~zaW$-7Sa@U`uIT{GG1e!cTiiH`z4=A+b0%=`rvMxX_k z4a?kj@#O%(h@GD~W}VND+=APsEXCcQjLW_Nh>k`}E6nfjm)-sS4~mG!4Ro96`Qzd5!8D{GS87|o=dazC;*@B+*bp1_$-V$8wN8SM&l%tW zX#47!3Qd|%u7D#z9lpip@gB2&Iq*e@>`~C1^f}|7m%&0ajDvAd__Firc&QXnW*i-0 zVU=Z<%K?bWPrF(1Zg=n!J*Q!Ymgk}s-cw)@M@KSmeD(SIl-P6X5r|+tjx;@ZSrlM2 z3FrymJh?bL{5!Ry4R5N3-F%>DQHc}w7gnIz!ryXt%J4LV3j0d)3!AmXx)Y9<~2Mb3>sIj4gk<3VznFSMwkC%rX(Y>`4p2#s2zFr~%k%FHhvAgu~=A=ck5O~W$YI5dz z8w1~uZ>VRCA3CXIXNu)1;#8e-{2zDL}N1uL*agw7;J1Q%x7maQ5tT4{@ z`$%x<`gko?kX&$yoE`S1vUnpR#k~Ij>3`S1Bw<7WRCj4V6|nc^-~+Y_jJcDm_r2M| zrF4rM5c%sFM?Tfm{~gdFeRgmSio0&z{^W4uqlC=l`&;qo*uOL=+#R4&GWLI~ju zF2^7%vI@i!UI=*}ck9I*L{1fFu;q=z;=VLNT?jbX5gxiV_HR&psV= z8O;<86O*0!;e}cVD1&kPqx^dLGBlDWq+!D3Hgjv_QPDjom+b8L&N=gjxNv7MFE$jL zROh4zk}3vbV4mkb-kaw+T}bxhaNoS0`H`be-kvYFt9bJ;BW@XJNT=-&obd?6Y^HFN z3G?c&KE@0?mJab7Pa5J*Jh09RV={j?$pVoguH-aL!%1-F0}yk)LGg7M%6ghtE&YHHa1UVPC=jaH&AF5bHL z6uuazVqJlzhA@@)Y1cZ2qrK&J`NL z!yjA8cf6CBaUBiopI-~nYQ6EE~r*4 z+u=19J%c$%b9iw4LBgO7T_3d0-S4j!z=t}G!;eTm1ZN&qK9M3V7!()WzVpQa8>0$} zDsfKCHp}ET8d`c%`(GHT{QuSZ&!XV)sDz=rxxRV*hJPBoB9#53R3NJ4bADoUA7r-%SR16V|ps#fIR0e!BlI1N!(KKt@0tC0f($pR*U_IQ@iEsEyz zuKxg+%V)IaZoWsnCUKr7Qth{!emegEz4(EyW$yQpOZxsiAoR%N^5^;A2!}c8Nztjh z!DQX>6&i4^+$fx(xzxTOOWF`5f&}b+KV5lpc6g2WWWRv?-xe)#I|t)kZ{OCQOQ9c- z)CQkxES$K?#ZaAdv-#)c`OKtd95nY|lILg6cpRxfoZIa6$hb_a;xw_Ayao`RnEwD7 z;%Vi=?FyUet;G-5m>DgA1mg`l{Qf-3E4zbn| z`s6n^*M-Q6-qICls@_|})&NQtfyHQdc=+yTy-NWFqg9;ITLg$)7t4hUiSWx>D^7)h@6v5vj_LrMG ztj4QqxnehOsW{cJ;o2lge}!BD5pb z%i6jL8UXMU(ya6gnDfu0q%6Wk5klLAeW&MqDyeX%7W8u$-FyupvdE}|TDpSqs1A7p zRSU?rH@x4Mj}baE0<-6b{c-0o0)j=)g=!DO)Nr(HE~n{VUcIJI7&eI^&|*4O)9&9k;0yqUxmNqmyS|c|LYymR6fqu3 z-J8IgC?(f0Q4u6mViTx&78NL0Xd*6nKrp#LudEowvl?aKMI=2~Ke2KGOUH>i+5p#E z*l;=PbHykt&?3aA;Ad?3rD>>0fG|&D!?S#13@CvYhMo_w^*Hh*#L)_qInTK-wDDX3 z!tzFTJ6ipQ_;YG_Ix1hHEq$Bh<4zbY=18M&^jI*V@>Gqn#tB`R-0&GpTLO!-S#i&Q zFOmojh=}*4<*Xm)!ce+62dDlCRQa}bfjJi0woo;}!8LzzQC%hEo%@Fr9#OG0{^N@o+D@Q8?(zsbv_evM5GI2Z#3ncUbx%_-XpPmgFQm*G3^ur`g zo(#20EMS4nJ@G$1_-YtOK;%j8d`#zc@g)MGW1Y{%%kJ^!Kn}nZ&yTEl=j8DgFG{C< z^Yb~^i#)=NmyE?{A$zEYq5}-RJ1?t3n**ZPNBnY4mS}K|$0ilbzoF9y;)`Hs%VVM)Aop z-y@MYqPgGw{2ZvUi|8V4pC0r(cya~s*-+*ZWn#OT?Tl4R^JnkYx0uK>(jw{#Ck@g1^uEh9q;$AdBM`N<3 zgr{9`9H&4gV@r!$rR{6q9s;afNd`R%#Y0NM=ZpnGdqwW@2A%BQO!8nPM1Um9K92p@ zVc;NNfs+cuf_M@F&5P$%)UfqK%>Al!^_6n;(3iN;(QR?2jBRm8+UP1%Bo0G2u z?W`I&0(uVsU}3UDq_mV8oRNeCX~I#2LWv9xbyX0jw9poS28sYx5(25)RvFKOFm-eV z&^5p$h;D8;jL|~b#&llJ1-zaz1JDUg5|i2K%6QRf(mdSF_mqA6^YhcxpwO~@rB$p$xo+{^*Qz9B5MZL3v~BC znsIz*%P07J6DDkd&J!P={a-P(&>j^+2|DNh0DJ?BN&u-d*l#^gPd;jlP~&>{mx^_J z^(#!J!t5o{6aN4>FNB0_#gm=A!;Jp?C?ysEH@9-5>CXD;+=ZeXkYj?EO*)|AP{1tkdH=33G)1Bb*pj39$K7o^GyFPpq z0+y62Ygsy#+Op3j7=rhw%eu%X7q5eJZolr@kDf#a|SF;6}W>`sXk2 zJa|2VE?g+%^Y!08PysBh)^kgH(|0?b07r|1D>#?iW@f%BP{0fnyBZ~oi}=0(0}q#O zw5i|YZgb#AT}Z;-Z0fHW_vXea?quhVc-()O$H<{>1^z$tZ_z*(X3TpAvC(^ zBAsPR&klc-A+Z-YoAJv2y>a3N112E8@AhEB&5u$*90L#OCHUVU9)jNnk*y5mpBX za>F(x+1ua9Ak+u0K7OKW$M}2{=|a7}r2X^E`0yhO)*%b6gVC4s&x$~z#|_XNxcq+} zCCK?$LPx6Mx9hXPO$B=6xpKoQ?oRj>@s}Z`tjPe6qajXG0 z{2#OGo*5BYF|G!e4*6jCgPm9=(sAhh`E4Nq1~-o&GPc>Scw#|0R&Zd!BnmQ>J(cK~OY9OmCulPCUjHqiU+%Nf^b1mER2% z5vUxFf+0XT?L)-csG5a676G6?B3CI<6pI87P%_D!Si90R84d>`L1YSnD1rzKP8KU0 zbl3VB04xM*`q2Q6x7V*AxD5sDt@n`s0ORB(E~p(;h2p&LAGw7li9rPgk!Kt4uO84c zToutl0(0+gf)fGC?q}rr$AW07YR@#Mg=7S$Sf!alo}SI ziUE=ZEsY!DFjp&@!H~R5hr!_!P(XvAH%Et*e0c@+Rb;89)kgh@JQP-2$UR1RzoG6k-@!drJ^|IuBfP=ntPyf@s%UQyzCX z^}TsOk0SZ7?knFJi{KCt#vt%GqC8vve4`yX=LJF>J!e;xkAvdlFx$ld`2PUdc%I!6 ziAJA1KJ%&K2TtZwh{ZnCp0;_+Dv~?}PIA7p~g+x|@ouCC&d|;4M14zUhR{$|~2GH(exv_%6 z(C>EmYiF7so}K6ZJV8feO|r%cyy!OY3KWo^Wt?O z2y$xlm=4l!Pl-#kpHtizE>1_DFvzIU%s({YJ^hz_G%E)vi!>8XHqQF-8WX^pJ5D`I z&izjVQp7lY;XTv!%m$%Lq3I*IG3Mvjch7S*$%V#b>*tZv#R{W=APzga^_>3z24n(^ z8$jLeKaZOEV8A0m4b%&0oPK%n0#%cc(7effmMET-e!o9PN!0P^CQXbN_{aQ(!xn!vkgl#^<$@w|SF1G^?L(Psbd8J_4(O z$&neQ)7kIw;zMb;l?#2%rsJNxconjhl5r`kHgi7wm@ffu%fNLFEx9iF3poTztfa4F zaP2Jh<0;8GafcZV2e@9N<18)sdgb~%?~ktvW5T_0?40qZ_v927{J{CB{{SaloCQ@h z3`9uYsOHw@JAtZMpO3}{f8=~bfQ!tXbA@o7J@L(t0Kin)c)b|GjC}y4>OUYHKLd|g zPa0zl2~HQ;#B;OXZ*vlHkNJFi?dX-(qex0}VDaTw*$ zV-w?_0iZziAgiJV3wG~5WDt-SK_OX{nDf39#26Gx3cM|lr-Q_Yk-`!Ui_gRSCzQhh za--U!eV}bN=Z6S^00*hCixFP>Jh6%e!331#z47Vdq=?B`41U2Q^1X9dpu03^qDT;h zIPt}!1X@r;Uqm~{yN3BiNWcnLL>h;wPAz-`2rs)C8jM^tIo{NP6b$bnt|kw8@lO?| z3eYUcc?^9|spBHGlge|I-Vfq(`E(45X&4m*cCsWA(z7611L7`O)P{_d*+!vXj^5Tt>(4PeJ3Lhtgja#&5d5S4ax{Q80pfE`gnN$md0ZRDB44iQ>()Lr zFla}HvpBx9c3;>-jI!E;uHx;u z_*`wpGye5{v$M(ydii2Odpm$be!Q3+fdi6P5_PThzA?opQvw_s9)=DB!GILhQOY6^ zMNH*(n}-0hj|yxlojIe=h)TecC7c+&Se$+N$k2fhxcQFGLLrvmMi9buP85s5%wZ#1 zBJUI`Jy%bQ;~~akmsMM6)!V)mP!J~|pe~F)J`V><1fV3~U_Gb7r#@5&8F^vO5YBJc zCue4p0mB^RZpzE=!JRO0Uye=Pa6djAIT zy_n~uz9#~K_72!^{AK&`E(7q_+5#-fZ`&Z3&}e!t(9>F8Luz)86u$bN>K$JU}F4tXhfzC-?Qrfq2L;j^BvC z@63QWC~#Yb&O?p-J}`4uuOvnV#hl|mEG>vxrVk^QKf_s<7}MotcsDM~eN6Gf=OOO? z8bd5u)=M^6Jp^PEF)y`Fr637i7*+}}I*L3wXN91MhRMRs`A{LxG-b9h&I&3R)39{a zXp|U4EHsyl9JguWmM{q$Uig6AamR|(0|_!A7y`NK?#bW`KtNQ9%kq$`I^s|QK~k=c z!3>SwwM{V+CFt|RlUNl#WRwJpSb;QouT#b3BpeVF?Z-RpS;mp!6+{6=8S*<u zISP#^S0w48JC-Y$Y7E+;Oz z^msme4(*n@unGVQL@*BsLe`sXt|E~Q@0W1^%Sneoa7r0e0X6> z001x{NUbqP(d)x%%}Cv~?M z8vdE(QKw710h3;^S@Xj560OTkL*y_{&tws(I$+c2b>H7x;D&)x0ZDhBC2uRwJ^{0e z;4ZPbJ3fB#@kBNv>CfU=dv^4ACzz~2kqs#gaasI$^%t>lQptr;?#r)05F#DH1$adm zKZJnLbP&!4hQsCC>rWNH8pl%i&fex^J@_D%OIBBczl-pCd52|U^ON4bpRPOd*(_rw z^ZEJu>&0MKLQ|)lhxA8rE7)7k0Fu{aU-ew`AW`|VhK3e@H_z|^9`Y#+$X@4-fI+7; z9H`-|zny%976X*(NW{b_{FB5TKvlqoh=V#7c~wAqXwoa>b6$TH04lj7LjE3J`Mr4H zF(Ac6Dk_G&1-J`|Wy%E&9M2XoE#O&sVaLBv-v-1^5m>=C-tSrS;t(BH7O-uc zf0^MIOad4y%u3|nn0p!#q%0$FD#pK0wcjT|qZ|%qozscnw7`YL1k;iDz|**V!6bxJTBo-oDcH(0a5hs<(%6$gP&er+^Smj`nQ1f zb3C}U^}~7Iu%wXjo4&7hUbz1N-ROn)e-cgZ^UUq>LiZ!`ovu4k;Qe?v&~gzmrV>BP z_2y^|L{xJ{+LK#9k2Io~&qJQQ?YvjN0UU&&aNrGkR`0{hF0!c`s=d@z%f3t^VpXyF z4Eld>J|m)sXJ^CDM}Nh7?b zNDX5i%4!qp`2rMD5#;#cC#OxY^M(~n=N|VTUj1ZIUM;_eoa_1T>&`+BL!J4P`riCj zON8DX#0$YbzOK)L?z&@tk5fg?d`*B}=M$Xm=U2A<`RS1P6H%SZShaSLoS- z6vmoq$n@hzAE!KWm|;PN*wEtDxIQs508pfdC9119_1omk5sljBz$EJ0K0swYg!Fn+ zHpu;LYq|`Q4#e8#V}qVlMzAlH1s9bQf~8*+2G9T%!gF^3i)pVS0Yz2a*OjQFgXoc(wr z5XeICT^BB0l&1%VN)-dKYx4`mc^B7&6u@YgfGc=s-1+jPE(EDo`j+MT!^pm1pssk< z2h`vw)5tV%I3RZa0AJs^;Xz8HoN$tJCo%s3ehko{cqJnkaQJuUz#Ael*l#)}8}Z+W zDwrw|4j1LhEI7UqV6>XbQxSwAyuI2Ws^L`i+jso$jg$@0r8_>!ezSO)(v>uxo%wj@ z?<@xu5Rqn5g&t{|o;FnK1C~%!HB4wFxeorM- z1S8#K-5&mDjG_>c>~Vwt06pIzplFB>v5X4ptTBx8+WVd51{Mu+h77(>0f;XP56gYj zdHV2pDu4=`5I^C)o<^#m0WZW;lkY!}Lk~Mz@bLWSAAH*h3GGCK%P%mnKI;IqoEArA z;OpY=hzO9UIsww?>$^WEgdS$M>-c>G+c@&bMEm4RU`S~D_MQ$>5Qy zjRqB6ey4U_>&TJ>y%Lj^bL+I(=1fR}b(@qE={VcGzR^=%lII)U=dWG>o4tc&Fb^wqyey42Dk{N z4WhyD0uBN~XSfr1!0Kn02p~cEFH{h{y3TjV?08dWF&5ux{{X%M3djINO6}n{m`=9% z(3?kMk)tixVDg)MTT~yNFa>ll-U48rFo7bX(!uC+7}0^R5KLVf9oxvvmD~8?n1Doh zFIK=lrxWqx1e&5pKru9=g z>z@Esl1x5-`|*4gqB8{0+dg;nXPtpoG`Q?^ZO#1$j2CG&8QOaP0KK!zxNDqiZOqmm zFXzBg%3ev4;OL9Tm?j3_>T?mkf$=bI5AJ2#*K(};JDfagJAFlwkLegV_ z$~D;ExNQ2lIm_ydQ@$5+iBt|4kQ;6YTjur6%fQSiVu@Ly|@##t`p<*kQ zIa2Y)-0Gj%qixUDlaN3 zQ>=G4p4YDh(k{BhK@L0h&(`?BuOuGUWcptJ0MCbTiBX^>BxAwx4>%M^3EDSyoQLlC z?bSeP@cd^kXB_SFAasu?X$Y$K*ZcCwXKbO$s4m#W+k8+8>X9HQHL)OqMDP?0bp#Dj zBeWbYd60r(W#HvX*X~j_vyjm;C1jkRa{ThOk%7Yn-g)Eu`gt}o0pNaJ8TJ?15^^2T zbY-}&QHO(RvalT?=mhKAFNmOm2tt?F8VL`3?mbW(TCqC*H;wI{Qn(b`-n_dRIq%<+ z!xx0)uivx2x%cE5FSnJ9ejOdr2A-4BllQDF_4jCVVKQ`kfU61WxVmhsQai{Kg*1&AZS zbx=hdl#XsieY%ao$zoPHP|;y1ibiu;%S97K3}-quyAHRqCp*0OjYTS#5qB@kB=|*o3ycN#Od?rjifxsgL37tCjpoE1|l|vLlv7vq0Q~^jCz+FdqoYD8?4mSK% zo~hORd`#8QDM203suMnYdu1w$tuF9;n=SV_T5h_hwcH(Ca=Z-j6FCjh5$hiQPPS)` z+XF(=(wn`;U+=_3r~{%1Z@OQrcs!s2jsY6Bu)fdcwDPc11Q!d)LwHcXI<-N1lt3uy ze?HrsLIxCrr?OinLz&3ugKRXM-o0)%r)ivd$w7s~ylIcYhsPcO$WiEQb(R5s-Z{k( z2_h0+W}cb<07C@Aw3x@FrxMS}v&RUR(>*N~_tOr(UjulC?X&>5e*S(B45`*MHAJ5u zpW=AA1V1e4-*=8jzP!jqSE&3D(5~@17PA$uV*8j*=>ez{_Uo# z1R#BkSL*BJhi!DYC$w_%_0JpPIw{cYOx4J|LwT;x9b+)}#~e=1{{ZHIaDFd4JMZ4} zc!FB|t*h)9Zs_0d#)NH-BQ0@9Wb4L^g9bG$aMv3zx^d+=Zb+k6ZhahkohG0sSOS6xdFPMcGWfs@J2OfI98RsKo+r?1)+iis z;y$&+@Cp?Jflz~-)7tQT0$K`{q;)KBUts(41R?^JHL>av*R#I@90YGb&de?2247_W zC`PuByb)-<8AK%ji$Nn@gT?Kv^*Ik3C^VCjh;_5)+4JC`X5h}<-?sD5(@z!D1=kR@brBpZw5UCmtW{PGvi zVz?kwvWCIu&u|4mdqpfH>L3S~coqVne9XOGeV+`IAVdinilvsaZ%0^w1*S;6q#4mV z-SUNo5Yn5$n^_%1>%`E}cmy^t7JP@SwxX%hJr+iu+^jgfYl;D+R`qD~V!|brz!m`q zkW+(se$Q3rko~jgDaE$+hWH49)a4O5<2R^v*Hi&)-W>^Ey`Rr3r9rq#pJQWwL$99- z5fKm?8pc}Fj7N;RhH%s;ObN}pF9Of>vm_S@$=lN%idf_rCGClv?*LgAf5 z>zRA`@=Qdx4KtJjf^R%ij}!n7M$B6MbuQD$RoOOgGnl60pT8DdNL(iq*?5MB)SeA| zC4SF`sns6+BM4IknsLnJdrbT|l_YWq7t@)b?vV0i8YDth=KDA6--wklOrp>~4|l$0 z@-vc>Jx;wFdg67!Ff4+YEP31hckJ<{uQ?i9*CpR*`tHKS))5wfK%bd-1;M&m706+|qiqJhWnG zYtsC6vVLsvd>!M}wU@eQ?$0{{xp1=ad{Afi9Q6%8@K*Je5;X9lhPsod!*{gXh`^ZuRP6xa^A-?s3BtrZDabBzPXeHhj)_HV zy62R>Y_6St2MXFV}!I)6l};7VZ3puN=o&%p|Kh`SBpcmBgQ~l;O;N`~`LU z5+=ebT=|bUo&dTK^15iR?9({!#X*Av9BCH~U!IG(K%*edh3tKgFQ|E9D+XEu$L;pn z`ti|l;41U9o5#-n%yzm6qfTL=>^t$MxQk@FQ6bPdL$?hRTVirVT9=?OW8@+-3;_%% zHBYEySQr5yd=MNugyhz)O_WmorH6`7!m^g=TU3s9GKSg^1 zvJh~`$H-`KW@sV#s+pc|7Q`qCa?Ix$=X?)VK%-J~UYc0^nXj8;;#MxWeg6PoI`Rkn0cuWYi-7)agsOed{Q^tnjr>)Jm@4`knZU(8bk;lQ8-#oWk za8oSm(C^5VEH+W0ywqmaapdF@odSq)K)+w_#Hb3|HmK2g(c|d8CdBANhtLPUO#b!a zMY17^>}HpPl%81ylXyoNhCAxKtKc*^*XN8spZ)MK9#*&>9w8BZd+_Y94!2s*Ubvl- zTjpNpE8n{(?B~~tMdEyHmPy~^zWf5AID0{A7lwX1{M>`6yk>LDocekE0p)rCmpk3R zm*%176?Z;R{`YTRURg_6B=1|szjXKL@Eg9bz8?CV5RWq7GZ%XlmEh05`0f7yx$qlzPIC*m=5y7a^MWk6dt1i= zdp$g!dO&by+>@L1eY3d_lWrN0S20`p9};Vk0uLnQ%D%g=h85kXqMXG>eEm5US#gns zob%hgbH{>BRfC#t0EvX;XHQL}0lKUn;#VX06weY-gbX@x3`tq5)z!;wU=Cz9`fQ%54JyLE~?4!Qm2HjgX4!OV#6xFN95? z01ab>)UJCjZ-MY6APMXnHuF6fd{`v{K_}uUKOdcMfyg-(M0C=eUauVZZcYPGMx$l< z@7{BgpocN%45RPvbW`cY#h6N%C5oHzPP|I3YI9r|W~+PQC#*#>9zsN%81i)d@OZM=LiSw4k%Fk^ zlZLg7h0nqu;$MuZzA-@n(t@u$)v3(y-;8uL)QXrrRNi{To)DsNJIZ=AFV*&kgMUPC z$_(}29Qj+29)AM7u>Sx*FPLmt)ZbS*=a~3}(gZ&qI8{V1hTuN}81RW4w5s zPH;|4hymMk>%h=*(h`-1j0DfseWrV`oIymNaaq$5HYl)6S3C0ER-cprt)~I3- zIiH!}22dENAf0p1EA{aqmx8al?nQ7nFFrU)8hRv3hs%fF{EdSLIOCDY&MD7U&jCUt z7CX$O;o_NcW_XQ`O;F(YlRkUg&k75ux-i$6WVoh(xTg)$a(m~kx%=q_p1Zd%bc+J zr1&686K8^eg4ECppsUX_@VF9Lev@&mK@$Aq)xIcDLLHzwDiOQ*aPbAm2A@GTIUjV3GH;-|scJH*lE9qQdkS{Hrx%Hdo$|6Z&L(?{UOeMV|L({-R z<}rH@Tzhz$SmS*!xUb;3Uj`tnLbx1H*;(tm9YJ}br`!3m=iZ(s8@{>O{qb$+_2L1J z^RwS~n0-#V@u}OF*UPa!CjAGO46RkEnapQ$pKn0X3jp+6yp;R>g&8rpkcQ_3ia*8Q zCPd&neR?@AZc@YL-{70AG_N`0%N1a<#iX zqnqzv6*_e1&odm}k3Rh3@M80FnL#UFTgQk{6_w`Msg(H7sp3T-O~;ofHl6Ty(lzbE z)QET1WWqmQ2@&aUR0A*H{&C`^yJi&+o#g6VpMDAw*d_Gm={V;8^^PndA}N_;4$d9* z<4vIin%)Obv(e-nC=SR?S~L&l^ZMjGR|tuWq*jU+94#XmS_U~-u_%PknqE`TD#Mo*@VzybmL-t@s=A@>0Z8kr~`x63$JpumYgc zA=&E7%D}usrju333qx;mBj54k>6wf}7St0H{{X&7M@>KjfKI)Cj}S<(b_iYuxd3z< z;M59T92{>NIKBJN6-J>6)Quc);t%1Am&gYuU4#~agzc^b!g>_EUy(KMd=GZO;&=2X z;eKTCf-AHyKUt^A?28ctWW-mRTofwpvSn+yf+Fe0u>SGJVrj7#ctM`T`_+HS0Tw*Z zRx$hI*7)^{j`}+IH=p6(5KdAZ9@84UZ=}Bb?23p0#f(!8;r#fqLMZ-EpZhP39y#~- zo%`oVlTQ~Vcw6XZKcVlFf$@qU&@LQ%n{U5MJa$nQGmCmY&DXB?!=WpY9iH2a=ZiXl z;vudVcoOE!p9jI~%W#o{T{A!9*Cg|VLD^fZ9rWMV?qvcbt^LuAuf@ry z4IeoOw^0tK_xJCQ5Kw`6GJQ%r*Wb|_)0%TPpV$0(gg7@Ca}HD3PqDMhU7--~5Y#g2 zMd9bn0+b2`Pq6@Ah9L*QB-`wIzfT$7XJ?KmL$8D{TzA*;lNk1^w6{&XXEk%S07%Os zfyO^4;t$Y|V89KU#=RI@^Ur|^j;MtB;GduI*Cqn|G&kpW)cNwE;#lmBJJCLQ_1BPu zk$^84Hdi?Le?B=yH#k6>&E|6sJi;_K>fD`~9!~A!A<%Ju$QSv{{WwjpP#fSQ2^`|)ieOtifcuf2E;HXOWYTc8$e;3z=znDGpkSJ$7Y~#R&oFW`kNw@gf z#SaliKuBI%b;bVxIQdXUNQoYL3ci;&(Uj1OP(U+JLJ-^^EszHYehw$r+t-X0BOH&e z$g}zF@_|hdIXX)V`>#FQdJ~me;L^rq_Iy=Za;gT|*z@phkATo5C|4xNczX5xga9kr zm)?4Ffn@ZEL91I0l~;JeT&(b6L0xN!WO0WdGO^Df)$@`XQ?RrJvRH7ofTP7#F=E4( z=yY_5E9EuVCh~Mjo8n{di5PaF&Fmp&b4EQ_Q7TV4Aa>KHl!};n-!^ zfrCWjfc)d{s&4ft$Z0FK51dJqFPV78FV%j$T#X1C`7Y4lN}Vs~4w{ zpwv4hZIwWnyg}f=D2YV{qFGN5AWWhH2)cC+&83)UOFZn<3Nh>iv3UsOo)s=rfQn4W z-Y(IWg>c4HUo6h)7mFl3S|HI4=eD zG6oE^+;DNvt>{+xhKArdIW0wNyW|RV87C<}xAgnIQi}?TDhP?1a%VV6d`b|dXH~02 z24DjqVc>}WiLH2BOZ@;YZk~{{}=jYb*?}_7>mIkbwp_@Bl-@u{D{sS8me?GUr z01fd_02csz4{ba_2>$?so$K32>$jGN&JuTyeE$G*i0HLVco||=Ew}vVn1m-Zv+t|; zIo|vrs7|HRO|yqT#`x8=?zyi&0ml>W_^7v*$)BwQ`lWADh>7a|01MykTMJE=RpMNJw~xny$YLZF zxtVWq7-P!#pcW$(u{i0XTJZcHBYI@-9R7Qc_&ipF7lQ+)9=P?_J_%46#IJe4@aOV# z;5$=j+v$^&wA1f=fMVpiSD4N>cZ0tC;#<2zlb!W8dpbDtP$B6g{bl2Qecu+QxqVN) z{{UXQR1aScWZr}2`lpx|S~k-dR43-p{rNFg5+-xTb@Bap1S=Ejd9=p2{qL3+mFwI8 z0H*%{yz`luEjpL~0KNTBIDjiY7Zmt;H!^#>s_sK9bP|7^WTEB2h%s@qiSeJs_F5oa ziz#{D2Jrn0<7$l>IiaoP=N^BRUbI&bwsFh8pN#9lO)I+xKNany{XP#Ru>%6whpcs; zCWc+kFU+q#{(8?bO_?iZRcpNe0CUMpqLt8qf<}6Lj$_71lz-bEjr5+(mPW?EK@`iB?i}5$B9DGH@N=3{@N&Zm-*))#308 zo)Q5LFKy4~I}Z#Bi|K)>={s3@eW40y*GMUyl5_WFUmF8DV+L?aZ7=o5hBy#b)vj&3 z)f{;1gbRRim)8Wx?)dYpYmE8eGl{3I?XU!c7+yI8*Rw*Mo&i@YK?MrJo_BUV__okX5U)kx z=kNORF%&N2MrxfeJ$_#aG^U_(K4B*2Z`Y3jgHuI9s+?X#q!9tJF_<{wG6pmV0Rli= zDW&oiMgqbCr15PPl)-NU2xs`*qE=HzSh99e!;;f4gCK0CZ!aO|2Z!YF_BsM0L^a3R z-#Yk#!*T=cj^=aqW4;~&HS#x;F>mFMfP&71nN}C9b3BMJsM3N=57*bnejz8bdJppa zp1(c;*bDKQ5J%MgY0$m~0*YQ?3~xqTIPl9cR+=1}WIm-E}kclq?jVyMRobAi88pW&scwESl&`98Qy39XNZf}&+*59^WTHz#=L^}1E06ncym;c>AmzX{kJ?O0_jwP z^AX?A7pdn4aJ(@7PQ=Vi@+OS~Lsyv+D>8l!JfhG8^6#|7$bP&O5)|PCdy3~g`|qSc zM5)0BFC-@$f#1s)Bzh>z>hi4N-ab)P7G#h|)nOriSGUED8q$jM^QUgHKRzUEMd@u& zz|>dbvBQZ4BfNq|i`k%PN1IV&p8HXpr)~JmuUUF&^3%!!Lr|LI@%~&dnWED>HMV=ZI5_8kH7gL3h-PF{pI6|%DgfO22jp|EamRue zQ=C~~x7$MEP2^#uNW02mN+b$Es6-TIl}iJ?`r*MU`dr#(go zk%QqcENhWC&VGIPt#we4YsIc$zgr$(16>?Pyc^$K-)wlIfmh5QR=n}N`N1TesMl%4 z_4@C`B4~GLfJSl8`Qb~`&mhB(NaFFpa<8@{1L#8%Amf}z=gc&?Aab-0U}$&#lOwRw5qJMm-$VRQ#z!$-X4>E!^XY9a-5e_Rk2P_PbqIG-Jn$3a#-)*vg{T0q6fi*pt)_P060ByoIsRV^MIwNzaViYWZ}JMNflx?>)QhK2 zJUw{LtkEwam$-9=y!Al}3>ctFZ!fQQV~jyn*HeCJ+V+nrix3x8t*NwUPCsPh!ilo+ zS)Q`-PWkX9wUo-Yru_j8@uEW1;?snpLCbAwx5!p;j(_x)RSl=fvERoWb?0Gz;ikn6H(mJgl0^;xXy{HqJ#Wy$yg>Yaha{hg=MrL) z3gGffHT>s_D23&d9#K6xPW$n*Dg+$a*_wCEcoEM86uQ=~y~jy;Irz816}@y|GVwZ? zef{`*NZ0AhUS0nHE%C(_3P zVdN00n!UFr(BIDFd>Cp>oYh?kj6Bff1624pyWdImd?#kO9)uk?OEd4m3?fQFV$+C3 zQSg*OS)xl387{pgda&?f4uYa0B!pNCBD83T=g|mfqjT*EoV8WtAda2ga-r^nUl;;~ za|^0c2yAT>S_l=Wj1Ue}W;8l;4@Z~+ofuaeefP{WzL@~XG;IkG1y+S>gW43S6m0KC z@at*t3*$x%NR?R;`NqG?#1&KvHX?BLHiyTe_(4gMD}kpwyf=@p4fGl=1%ta(X5$Q5@ z-|BLCM@}mKdEOH8UU}MpfF$dhxosuqjy^b8XE&E>L;HT-OSgTtoYtae{{T7hTL%hr zK@>!I_t#aZP#kHEF{N^di1 zz7<0@c3F3DHD#^PTyY-mS-fwx)TkJY@g%KYg{Hw2iMHzol8Kf8Y1cm zx-~`LKVBt*Bt{0Fh~Un{%i)DI5R{ zq@V&zKoF#Omw`tiU?Q4QBN0si7bqeFpd(fy0VomY3yoVdk1PwwIg&eJ#}migsz8xJ z4B#fQ4C44xQBibRG+EcS_1Jqe+LVOC&S5{Ee3CRKBFXmWcJDY3l`@w~8pK|WnWZ<# zX<~zFa~@yM;X1myv1#~J=N`X39t2<@KAvxWj>Ej;%O&X>v9703L7?9@|X$w$|f>rOnN zwSfXv*}l)?`_OP_OQTe1b`J7$N6mFUzI`8T-u3Hx{LZ~Z6FC1}ul=tJ5)es--Vyo!7A9RH2igDPwzL=PM@l!!zsTwj#9+>0yU`RsX z9NplI2pasv9t!U&qAQ0#H>18;-~l@*3USPD^IvF$WUyVbB5<)o-D5)*m2<#xbP|{MUw6b1jVXr+7gch&T=fyy=udAvF!lZKjGzLFWk(l> zUo(T|YeOi`^v9mJ@^~JN696*u<>kM!nD{7&6y%HRc|WPV!g0?ALR2E>_na@1R}5<9 zY3iDBzsHhdQk)A6F9+gx^rQf4dhGQ$edhV25<{uXYQdlV>I`%CeYOjaJl|ZNVBl?w z_+4k?o)1un)SHABmwIyeryej2TvLHmC32?*--+V|C2^LVrL#R?RZ>}*h@LPF+Epu2p{#I^F_NZ@=G_yHNm=00V%h1HW9TYcj517qSUun5G!;4Cx3h6K+f zZ4JGi>sm@SXItd+c36L2xf#dDf>3A#gjBp(|$hVbt}~^KW^5 zrR+Sj!zLY#bD5uGhH>CStLqSt4QAe>o9n`^$vR$n&x|hX>zl-37cflu58u0)<)N0W z(>?I^XY=5G8c0&;@rMXa4e+g`aV^O?l?Rvfc%T3R#5AFb%PgcO0t=;X@D1!qAG3`! zLQO+K#X3NTPWrRf#)>e85iAaSGHc{2qzOr$i;!`>2Q$x4(2>#RmUZ*#&k$2)JWok| zejXhq^O$_bK!Yf@g2nsU@0d!? zGpjzF<36F!jaTr)=V1Q;+vnrR zX9J%f&x=UDboa*~n)|Pfahg+~lK%j6PkD<65=60TD@pN2BAzKuV8CZJD)W02%^WI= z85u^0uk+=|P%)tGpa-{JE%G8Nx;u*9ZL6zWQ^%MmE*YxfL^lQWQYz%ZB?&o#nD-WQ z!{Y-9Kml7-fpF2r26zs{29BdB;OoB!USR%n@=K?#xZhq?Z!|N$LR9$O@H1Lz3jHEY z&A)c(6uOR)lFnJy7rw`YPRlq&u#02jTe%=s)V2&!4sHdakK9Ep_H%Rvyi{F0`zApj9 zG(P!9#?_8X;B7)Ol22n$gMjh4L4mLiXyk}f@4pm)f?Sr4z~I=zZ-T-`7_C*@z`DPQ z!QmeG_z zgh6?;!lQzyH`v^5om-xmC@2JGr_sDK6#!6LwN?tokO}d~z5;1m zqCrF&>=5$tz>3v0RA3gkx+X7$DafZcmwc1|0HdE3r809&QQWuh_X)BA7WBvrS{)mC zkCqz(pchsZY8lZ08mygP6Noi9o>61<+D5S#!k0K9#j%beNZ;Du+U zJLXNeHy#fF6y&upR3N4TWe7e6Y3~GxTEQqKuy}S1Y>Jh$kFm}YlQ3{ka*u&%MHsa>Xv^x|;!hx(R)vUF7lGvBU#}WUDY%@4;Q^!k zd;&J24-m7gD%QHcp9hKvhd`Z~gh)O6@ODwn{JwC``ug)!4U{VL9$Q>`s4!Uylp>-F z0#NHQQA%n}7!~MIGzJTBi-bHmB5~25B&eKU-gq%em2~aJr-2M44L(p11*|cuNUNY{ z3Jp=D*weIoK~iN2z!3nY3CDA#+X5eO&V$B{6Yw9$CVhRrAb_Oy+s>hLfQy8W9 zIpCaRe_m?=me0A6n`gz&PZdJvtlO44JIA>LfbV(n&&Keaxn?=yw4*Dtjm8IAEpuG( z)dh~)G#aikbWA~qAPsu<_48s45E3W`cmpRNS|05{AH+Qx>VfUbj#5_$I`D0^Ng$PgKYA~XBggBWzY8K^?stYc{Q?fhecnP!6e97=| zH}#8f&8VY?8WEhQ4tPSs^siZccgN#=3WZGlhZrfWwCGjxsVQEla)>zaK>KFZYY>tQ z0fv!DbmijINv#F8x@j^C>3HSUs;3DzX~*`5=J}%>jcYq;`Tqbjz#!^sKNx6YtlRl)a@sg|sT{r}R z8_1mNVdMHFvZD@eeSf*-&@pNNq7aCpLM9_}&j(C<6vz-+*!__@4QhqzUFVi_-13l= z5e)zc6siQR2Zlg}Bo|R?KptQ|WRM4ugeg9t2tX;}1wd#iOGq3X7kFToKrM)*1tz5u(uQWtplh3)!0 zDa&`i``iBjJ_U8NCID~WjadF}X?`!SS*NQi4q3Wo620fQ!_y4|5OJIhzl^OsEg4-M zzz6+f`ti;M!#=m2>^RrclUdj+A?+Z>J)aBZ&W>)X7V;xrC-dU2kQ0m(mM1jx9nA7y z!MskLB2Sqgm?9$VCA_^ef=yHWU{#>#Z>QfsUwZh+7m!_qbxtNfe;tWc=TRvDvWkSV z^kRrg)MN|_r0q6>)a7S^pjV)@IJNyoUY{2O9ONRm2^Rdnz=ftEXiyIXR54bVCJ|^T zWN}~!u?5UX6>*3u07#T5jd(9$*Mp$abR`)>Qe~` z$49XcjX2ka@$dNm0MkwVtBRk0&l%vs$P{mGW78aa`^{K#X>Itp@BaXOcr=RbD5ZZ2 z{p_Cn+5li)EYw!YeCB)eU~33tfq>KY{{S91sPg*5u8RAZdN^vD7B-?eFhe~HIL{P@ zYha?z3vUBA))5|vA7tw#1h}HBjE1L`6eE2Oj;wnyZ zo!y)D$BZzSU7>@o9{PUs!2uS!^CtvAe-p2dDakBdd2PS%hw67c!vuX=vw zbKM1`a}p&S`5E#L=f`5zuTYSH;FSx%RPmx9BEk|pJ(-*GJRk=aBE3Mb@L#VC6e@6_ z&`1x0A|hgt>GVBuINomV#RNPdmq3-F9nnVB@d#q+Wl9~12ww<5qM2JTYf#)c{hlb* zV5A4_O9m8qbDtUp5Vt_lFG3D;%%OY~A(0@9>Jz0g`j+`=q;+PUz037~$A}3FtuxcQ z-*)@F`1)J%6Pjf7+|Q1DpaxNSSR?MIzV99##uc*h*DvEbzPu4=Qxi0T4@C-iXh1WE z(KS%J@thvesuqU;N~C(njx(NoyM3gOcARm-UyptlZvOy{&$s^PTU2@n($RR`_x0C& zS3(VG4fmbv{{V=Hkkv&gX92)^_UpbXh;#!_N8!gAXS0S#L7F*;raR2&pN-w9SON=P z!9}mK_#FnU6p85Q#Y4Y+_#hDQsa&~Vb7J?ND6lA`L~p^@clCV1#ilxcgXEaZo(KpV zT9CV*>+8W%tT;uU;mPV%Af&uyN@5=x-0HWMu)Z5d5C-dj9i8nB_s`h!`9@DeM$#}o>dIEIB>)EMI!B@dIIz&n)d}d@I!(I`e#fax0g9w!P@huqZLril>nLqiV01Z^PBt}i+ z*l)J_L>2-HRp3g1B@1n|OjHsSr_CV1QAtIhASDJ4n?jT*;4(-o zFX0zJjY=s30;D}77O6>{X~|ZQ#ianyxKt3ZSlEeB0+mp-@Kn~>N09(Xu~2&LaW0ff z6}LmtYTV@UMXnGmdw}8p0M~+mX^;Y#m~9mGCO$w6B7;K65IXF6?@v00!i`d}(y&67 z1I^JYX)ppHa)1-ckBLx|n6s(CMCLYp`7wC$slx$pP23KA31f@Mx8}@W`;Q1JiPhLB zIm8L_Ja|c{Fl7PSlAOaM;Z>rbwkSh8e5B{aKOxDskPH{wxzCgqAg?cOy4R14<%x(3 zkW?pp8ICdWxj|oeD$SIA7d1A%1fxK@u1moVj|S%K#AZiF zGP0jKQ3T-4PquM=o7=AxWbEUy<>CD~lD7hvjLoS;4cC++VoPy-j3_< z$eB_?EY}74fhXR+1S;1g;UOUC@8`%wU1(B`A-qppdoO|ll`pkUSjf|DfntY_U>jk2 z4R90Wo!#&dkgcsaI&<;XB6b2n1QkMmXU6vRiHH&)R32RRKi?>MrxM^D5?B3n;{@^3 zQ2@;a;h==<<>=Z^zZ<09Hq1alh-Zgq2{503|Ly5HVhm=oHfN35Mf&(0Rbul zPTKea4Ky=U!AFvliX8Y85I~1|N%=X}UlxdzFBSA207?yc@4+k(I#(We?9P22DhTJz-DCNp3{BR%eOKa?Q0$5q|`0MDuHK<89##vO2hbSGay zLaiWyr#g)+FpsLw6}aaqp5ZC=+dLOYxIhWWASn9b-#$TCU6v=y$~KnXnt7v8fCECT zMS$3ez{um50}zlIV8{GEOwwM1UCq0`g1ja0yiy?bRSB<^=1-m%(A9)nS&eRq8PU_i zl@KFgUU(Ek#tb@-kQ5fLq16#XPE8Ki!2@jJ<^}-ziGWsAU@g&zL5frm5Ly=l2uo@p zhB9F~x>SnW;ZTg&B?2*2B3K%<8{k5P1Pv(!xYz;X6nLY_4>AZ$)db#-SQEkMC_;M9 zCrj3J>yJA}E@QmojlQq%!tx^)E&83#V|*5-fGXIJ&p}51e&I&A(O2_WaB<1&!3nVS z#EH;p?l=4wE(5P@KVFWu&l55uc+rGhGnd(46VM*@WBUAkWbq-TBN0&|l8%WQQ^7E7 zESd1_Zax)D)BUNV& zebZs!oo8T(?KxUMgWrLJdR+9Io%^Zx$ALzia2?)ueR}Z=7oGb0N7Y}%Isww$PBHd< zdpqzcRbm~EEEtveA?PXqX#B|?Jr`a@z4%aLlXb>7d&1pKCyJ0#gow@^+W!Dt`9V-M ztvwn=`TqQ<2NMxBxdM^P!q(3P1W3ib2$~?MYUKqya>2;>0SpXE0B_2%SPOKjuFE^k zzOEivR4h?$QaEQFvnR-XrD#XPGnD1*z6MI0$ji@c1K)jc00t&O)^Gyy&u^!E3{ePYEVG&5fCo?9TL%&`{QJ%zt$|N*UTgmn19)i|_t7!UZj|Ja07>LL# zo#QgI=d3DG7BEMXM<=fS0{DTpb2Ur!rjl=7Dw5KYmC&mV*mOC^fyjV@rir~0;86|` z1^_WepJmN7V!Jf>+{NCxH53kkNjD%pbyOvTkSaB`;?i$}a*$wGKtiwp5CA;2f@O6a zsjwmZ=5pjXGF1}F+|1|mnxs)QL$PkXGt#8_JW2uqiuAH(c7A%{kyDW>M6n^yP;bYD zD%vj4PDVJiPp$HVxgxUoo`eZ3h$Yfl5z3-KfYDL;%?`EzKzJo3MPT?WAS&n)EhIFk z0)PTO0ssIa;t$%3U%BC4cu)36ygBFJOClMZ&yijQiNT#u8A~<_7&q!aruc|~Xha@% z^6=j0$>K^>rU6hEJ_hET4~F#_T|R$*7yI(61Uf$-bG&%_)~n;|p&WRw6s3oC}7v-C(CI%cV4fR zr!1}3IBmo6;I&WGB;q+a`g|yWFfVmV6HIrUO8L|emR4Nnb$RI`j+rvc#( zz3RF{&DsUz5+reFdT{;=L~4j=RAHbg0W|CIYlif0w&Urfeb;XOdMgwXr7jS55Cuyil|N zkf91c%g4_X%N|~JE|+)Tq36IhmyhlL0ABt%&lj7{Z2dgadT;B)L^&ofTz2~VIs-gK zlt~eEXjXkcJ>livbF4)kx^Z{wXCPd;!&|U;%N#fGo+c|ei;W0sN2K)d&jbX_{Q{1a zL5wIU$HV~8sMOVo0iq8nQ6S_1AX=hnJ0gsnY<$H=2wfwt(l5V>weh4Z^r4Mby>A^& z_26}3Rx$LaE;jM}cr$?N6u~!kXj{X_FNvnz5Tw`#@26qBc(jHYPTk?lpW^U&O{jYH z&i-UM^m6zPfl`qCJU;i0;gi7*6)xFTlMuMAU*AlMs8=4-IF*12v$!CE#s!IJOyh;O z*PJmcPA3ziyPFhezbX?w%^Z9C>(+7O1yN^fdon32?$5*LG6uIy7n8KU`20@}>%w%V zXHyt}HM;XT>&BFDEoa0yb=!Sf=bwmx2>_uagUFus-O4HeRnXmj&yC+Pgh?J;8RJv1#(;85rUl1qQh&IdKeA{>Lf^nv$&k!6(xuzxX__mEx%5wq@tC<{%B}%T9D;oB=g5_oWA5MFTz_YPLQXMM51qdF3;cpW7&&v* zP6s{jUOjQxuB=NQX|##YgI&-&>#OVk0D0dKtTGzg&u!n=yz@X9in+^>qLwj!GsEwW zk^K9x&!6f=0$%cRz`gC3x16fj5|lZlc+czncqbBNj~w+s?{4_7F$!^JY|q^5uRllS z&1utk=Q(WE9G&yAZu2rxodN~2@04K%Sthb&nn7yxonR6=NOHpCi1!$Z47X9J=T00jWv$kDV4I!)k^ zaL`jwXy%GYYgng>F0h3mBdgc@@`eRsi+EMOgh(_*5<>=u0tiu~&nF8X62)2-PqWb2 z{rm_35OFB)smLC=co@{DeCBO3d%nLnJZNAV!lBdY-)|mJwtV#$oYNi>7J=^H@oAa=7 zD{gW;{{U~V_ybQFmT{Guzr)1m%yKEh!F}^rKkht-q2N%2RSk*@yEt1!p@c9+imXw1 zN~KWnkA{_kQdy~Lyoy43UCtPADay+aoRRJEfMOVtScO#fa&y+C6L67b&T-b)g8UDF z6s|B`aGx~feB}fpvTR?Tf7QptkT0|mmF|A;x?$u91tvrr9bvzx{8$+~M=%1O_=mBZ~7j54qIvLV!U6eHT`{zjk;G zuve~(Zs2EUv3c`=MHfH-NgObPbylMaD6a%vGW2rI#U?fT^9&l*tbHloH5EDzJ9<%mx}riVq(&*NnA0PS9+hV!ZY8NMd8MKB!s zJtWP3IGzB*Xqi?NW?@Q!s`~G3S_5T39`uYz9MYEigzPCp|_sDy!nyZ!Xv-pxzz&mt~PsKUB{{Va722Q%X z^R9MVc5}It2}9avUdGq1YG;581MxdCXQE%qM9F+sbP4qC#(vmFAE;r z`8=gGVU3(*_e=gL3V}ZC{MVm?>ETc;0W%&1dBXPi`z1T)==FR4uaGAyv4k*d*7U`E zh)p4KrV}@+v!5hJD5#KddK6>9+3Ok{qL<=3Zw&SCu)YWq2b_ezjsCqP@(%#XNDhI0kl4PwS<@_mu}@`!aJ!0Dq;GayJlR)?zH0QhrX=f*cDznkme zO@ltYb?*@JphsfEIFj6b52E8xXz0h5>R*3fAAky{qO6ZG zZduTYE%Ankzb?t`<9qJkC=Pyi3+uDZybCquue5z%*OLLOHD_(9+r#Uh5N6F$P_quK z#m}xNq?oVb@H}D31mB+oZ*L}L+@G?)*MtN>WFs0c7zu|l5r@fm2*K-%l3$(jJXyzKH9S9%MS-N6ly)6N58kdo=}7$cW8i&`PcrX5-K7tK^hYZ==zY< z@u5*?CBrMnIexwx7U^mz+n>`T=dEZ2V1^7Ggoa3Z)5l2ZNMp)^r5PUWOx{tpkD)2a6~?6DaA|$vHot5GLe7vzCYGP;0*8c!LBolIs zmBWW9#OJ>(3b0;32~IkHj(jRz0HG0H_6*_IJ~;2@cRWtj zIOJhP8R~ORPAy7{%|owfuy=bW@#iIKB{a?B+}<^Zr^=9E;om;G{$sSq#-rGsOy%|8 zC%=Qp=C4KD5%-6F0S%9SjmqYI9N!WM!p%FF?$2+-%_xQAj;YT5aQ^;$T2G3%zJ5o2 zTlnySy27Fb)nAM|%=!f0vS0}j_Z6MbepyLLNRm{~#L98!d~XCs!6|w-o_>5Jv?&qR z<+**H5Gv`0vPDcbMooC~4|I%9;e6FPGHK@gMNq>g7S&#zJV{|HJr}R`ZJlRLKI~7rJv*d`GFlXP6@u<)RVjAay0VY zdLx~mKTCXYz)K|2E)5gx1Yx7z@e_#n5-&Mk1)9SiZ^s@5A0cXU-(!~FeEAL< za+V^8=6^kN<|kkU?T(qA+n=5Arzd>SHDL)NS=U|?$C~g9sea4u;{5`KQ4k5y7Qg0q z&x(C#P8?WpoJamV4=V6wrY@VEWU~F4Xq+SpoV~kO`0NJhl06yk_Iz=#nHh?J@dVm& z^?BouGzb!qj8j|!Blm{WuEs$YIV z6?QgZSK0`(p;mZ+5Q7drbUAE8a{XB7qE=Lwp^h0BJ{4+Nn>z|{C;a`oq__Y4Q4N{$80;@&?%bcU)(8>g9^PE_Vx85EjhZD7=ca}s@1`nS! zwI->LViaz;zvs>{xP2lED7Lpz6H!_g z?k#5-?liEEJHi#vVm!TZ*P2kpx2-aAy&oKL;5Y-6T0?*hof7(dpiv@exk?yUw9n~6 z&==hZ9CY({kLSpM1-o?$hY!~mix_w*qec{ovyLIVpFH_Gn~NRI{BiZlb38<%w#pq@ z#~LFlZ+>Zx&h~4Gk>nf3eE7~d4u~nGxyM`JH3c=L)bc!*k(>#URY%juFRuiM#ax;?^S>#bdBllj2{Gr>Z*T8>!KL3* zyoGHX;{JT#9CM2|j_NONetbePDwPEU=}j+Z-tYpb+M8Y-MUSV4--=kK?VLUi9a&#u4h>(*C1 zQ(C*pz_8bkpI-NttlPGo%-aWg@1HQK`w#f%JR@=N|gs z1mFM=rj4W}luVSfpB@BW#6<3DAnxqf=u{Ak!-e5WeO>U#06t9ohO5`D&U}bF8Yi94 zMY~6HuLSr<(NZJNNbr1BJP-nr0T%%@PMmDt3l)l0O!TU}4zGR`MG;b{sF5uw33Paa z6=f0tN`$SV0(>#>AaE04qoH&7^J|8&Fe+*<-E(|Ul99?Q4GlgB_24KjJjQOLs_A$? zpAc}J@JwPr6J1}pnNUgwV@(jQKs|9h31nAU17sX$DuWR-#2~koT}eJ3SVzRi9?%Q{#g@Z@?*fVwh&<_4@EtdDfi`ynZ+5^T~04JAbl$efX#fBv1zs z)lSR#uRt__bC=e2>zUVcs*R{&V7zeYUuR>U0#aU7(eXZqF2JzTYm4dAU(wtEfO#MeOyr@!t>M|=7zvW1Yhq+Ih=v^_Z39ThO#$wNSaJ=J zUTSnlg_-UBdR$N`J1XLkIBN4AJh?gwHKkq=YRumO5edt%X$lSnf^ac396j{xI^Ea# zZ;=Z^JgFNAI7}})pFUWVf#Z~?4u3@X@Gg+%l}y89A8+SvQBL^_Mbpy?{&-2^2nlp+ zmxHk9`}u1Z5u})`BkF#8JOK{S9`QG~*W=O0h0wG|lmfzBprZB11T&@9nEdrPo%kcA zIwx5*z5f7P;0Y%3)_)PczBeo5riuWFP3XgmDf;lBwFJC_z4O`Yzh{g{lF0~ws^zHB zit^C$YXE97=&?!galZq@0VrHQOQv(Zr^k&d1#e{F7mri%PGBq0Fd(wZKOYNki|&93 z>N@Weh6H~njy$o58Vhg}8b6ul5Htaf7&$K6xBK9(fCHk-V84$=@r3~Bh@>q{n> zCy^moPA4+d>$2WMtWd~O2!Y6we8N5P;9npf>r+g6?tOiz2;k0Y>bS>`aJ$cv9bTtN zDlKru_0O>J0Walke>|t(eku%9JpG5}IU(OZXNOa}b>f32lb*azh!BQ%U0%i9&h5U0K>(Cxf^#neQLixa0$-M8dfl(!;QmyR1j1V zUKAG`6|Bb1B5)`o5WtAQZyaoc;tB~4JkyOw^C>)BQk=vE83bC(L}#xAPF|1*kpf?U zAel0?f|npxD5|vXb4p?5X&F%BgALE?ch`}OHJPV>Ew{e<@$JZk^$JSi&t@6mC!yvGv3>VfiN!fK5od`KW;}JZet>X6&Bx*+k+_3-b9;turh2rG7d6=J@g< z5DvqW4lmEs&j4u9B@SD5*9)&-ejubVz=`#;0mHmE--?VV>jTr+UFF#Ls)+@QlCXiX zC%gTp0xvu8HSaU|_{G4&pn=u0P)26%-zXq})!@&4U+XyWfiWoBmz?FX;@ivkPU z6-kF)v!6!X9&EAgWoW5)an2bJHC0_gIW*K7e!g}Ac&%WRW~RA$eR}cX(D*VhDppAI z*E!)-F^*B+&@n)XK1naAxmw3#+C>ee}X`jdD z`WMLPI>d0n_B@%u{OM(c0Wd2T@`EY)dh!)bQCeh5(;z*%cG&#%ASNc)k6PD%RsdF-<-TlmYQG%Ye&rKJ#Yq@o(-4BPouqlCC&m z{rE7IAyU@!U^l1*+Vw6%Kq-{qPHjN@oOvMuf{Bk*ynFt1@OX-Ddn0=Me;!O-8XTE# z6Embvr;X(R&=f%kz~HlS*?a(|&RN!7Z1#wXRm$= zv1!WN&-3-$I%L$npVW=HW%^5P^Xook!h#Z3-~{#U zc=HF^FdRnwPI%|zUmQD|WeMy6&UE?Wc!&cHu$4lWb2Ep#;t;GC=sZ}v8|yZ{5n=*B zOT7@hpG@_-oKEW#DUv?|FZlBTMUCU0jrf0(&GBqn3^E%{=JV5^p9X`F9&=mLfAf<(O3;U? zi!OKicd_tAa);R0cye;v`}45{@40^``Tl%haEU@TvX$wm$y5e(gK$V%=M?&Wx`vJ{ zUJw$Qv|=giM)}7~bVP8_Xw;IXk+{-GDjH-W@he)yKo_(lM+Hhdflz%j#0O=5;_ROD z{dMJHx|Y2gKD++_k1Mp`qOmRtA=>HjXN$rVtZ5j?oF4nT;38m1^Z=)&PxEh*nDBB4 zJg4$G&G*lR@SM{-Q1!mLMB7wEvmIF_=B7M%`|`93I9ThRoJV=`>RlKx_%0IzkKchD zl~mnVMrU8#+5iYTQj6V^hrh%_%Cs?12(}aI z^I3HFwpwGmNiSGzIpp;`QxUVOyzKt~Z-dKZEy3a06g3J~liD=gEC@`Hq)Cq}<_6J1 zBl(b-)782zA7#-vRZNfF%6J5zvSc8fZ{j!i;MLqFdZlmF?~Oc3TVa{^c%1y-uVBJL z>O>VOSBOF77rpWTYb^lZ4xq{G{{Vg^728T_I|WmI=5l%H!1TQb3^+Bs`F*N#U;RD2 z_lF)J4HBI?k7u~!*6$uA(3J1v*)i+gk`I7GMBL#a@9Z`Ar+|pD>659F`rqL2P*~?$ z?G9PVpARpDNIHX4iP!t=t@F4+cJ1q_)SX0^Cx}#t3pjBO1elEH*53jZx-jQW51YRK z0JNyvvxz#kbSHK8i@>$IGdlh;&TPSa*Q$hi(3W+}%M1Jx#Ue%h3L-qiPwe1C3e@5e zF?&t~o%l@d0}5fNa$t=W5v6O2WLN2L2OF4gqC(VcWtD+t1_9)wp- zaQi*@w+<@dCj!m{A;sb0Bmg57QZ3BZ^oox+!c~xvC@vW~#02hmu$i$-4vPN(@z<&W z$0bgMna+u>vH7SeD3CP-E2P%_@0AKVk_VE=rJt8)jSD4t*J-kkz2Ujwbuq=|`3Rh6 z((WEKR}{S|z#~Zm@zv2;#(}(8ADue&Ao!Y8+;UU8@5lJ@l}v2cdFHd<7MtLbC|6jA zdHGq-zZ-3np2&0hbKY^sl13aFTT>rhyxZ~O3ksJJ3L16xe*xm4w5-Jy_}a5wCi?Ii zA;NG!jaxUqJHAOwfEhJ`lZT#vTjYya61(waIh^e98XTb${VytVK8*5v;fzbd$TudN z$?L#XTnsoDtn54d^Xv_m^TDovKbg;l<88)e zMx0T@#Zg{qEl5r}ulv)&&Y)=@Ku+VeLRhm|A-fP3{S*l;N?P;cQr6R!KRmq7IKz)n zxkVx*6M7xpfAW!##LjR|N$FDjXN@*Dmt4y+bJwa}@F-9uqj>d)7dCifU!aqx(=d6v zhl&8fqluz(#%C|Q-e98;Gf)i>w9vzm(eS7mwh++_Y!|j6RK7&9MG_^cnhvP4A}07G zk)UTyK|-?xQL5m<0I3i!OV2iZgT8y{FLM~~(~>>!;s`nwqz*Cne|%o)K~&*OpM!o$ z`rbU6MX*)xu_~G}_txJi3L&{ofIF;MH}RwZbQx%G5+9!4_sm>z>nD6({yOKA$3~Eu zH+_7Y>-g}?Sv_Nl{PPd!?qCthijSw>y`$p-kOvVAHMgVV4}$q1)kf>afyncxA3Nj> z2Y0@<_07r7_@HjH?C0dR^c)`icn?c}GWLcxOb&c8Ra8NfO-EpjkbIy}LqhEdAW#yZ zG%sW(hgK4Y4yw%Zs)MH-LA&2we-q9@bD|A``tPUs-!PXLVH?lM<9CzXtAqIxhb8*> ziUhd14Amo&Mij=ee4r51v<3Id`5D24Ikj*8nDb z!;cB25Q;m-JG+V1{P;F2M#9%O`?dM}hesWL^E&50U3h@EydA6GRo`7c{2

fNcrM zZu+h#SQH3zhGsp>hWr@vP6AL**EQCjrk?y|EJWj#6EUNEp5R1M)4s&icqYl*@lk{J z>-rtkl-!fXp)&GXobOf796!DWI>)YnS$BUQ9lk^>N-42Ngc)CX9~>$gJqTi%uU_@v z1q`Oco-TC%09!lOMWj$>#bE=n{>U9OL$6!`!T$i~-yTda0((vGIxY3b!xAtCzb@7t z+I74;f_{?BdOwpNeg#Dn0d@(J=x=Tpj~qwFKvjaAv9t=pi{L~sb8hZw`i7sjiqaMX z4v{A>5&F)&K^Ur^WNKm|TWaaPRUJ}q3{#)HJ%=uNKvKmJ_IoiT3YpeFgAF*n3+`_n z9{gq(3owz~WN>e#Z-6!`fI59b2Nm}t$CtLUJoXoN*u=Sj*aS>7Fy1C=dST>u0x)sDKY-1|m|`d6$m| zJ)D=dLKwcwGn33DhXGW~b%%My(ejyt0&T0omUolq$rS}a)r{acK3(P(_)@DD08}f! zjK02n?GOb*fp-Ao@v?jI(GWNdXxp7b)&Bq7TCAR?A{$ zo;K8IiYmkl?{jG&&GOONAQBVse3oawF+2hS3tn7NhN3ao3e6RUBdNhojCuL%CETw= zg`=uRFGa{=5zGM)RL4dJaWqp@<+>aM`bci)(c%}A%m@nO35Dh!rShaegi+I&6?*mP zm&q$%&O){vl%m)M<`$t$0noFFfO_}GCxC*nFDNg&%giJLbm$0s~^MM<#7*Ga&4-(%$p7epK* z@uA>X(&mrQ!L%DIyoBIpk90DOp^9avJCq9jC5VN$g>yePd zr?1{{V

Z!J_IU;BE6N~ z`r+wbJX|1PKuRhqH=4)X%P2qvHh{65o|XNcSR&f-mnSNpF~3p1UUEQCHfQzyKR#Bu ziX6LrPJMi9lffQI3kko+{nhe?6`ka-S96XJlenT5X|ngqXXn-To&{04U&qJEzb8Gn zsU*=lR|^}z6Rf@@|1XHAZ2D4l9dCl{f&qWBlU9;Ewhl0a_t-NmGoO}B{C?wdkPhRi8SbOOvgO9XH z_Hg?5#bf1gItR3YtIO*WTYLaIW^wQ1Ik$VB3c)ILFjzFsf4`-)0{~3r&4e}Y-@gq6 zr?hC>$uIHYXA4Ov#R7^oJ|BJr3WlWuEG218u9*CC6emgnaG%0!CGs#;_g9bi^*vsE zcekRucHO=4sz`HpM@Vq@&tAX3T%`jXfs&P-@i~7t$_g;!`5gB0eq)c0E~|Qvu=kvw z*Mmt9BIZ#~OeL|KCyw5gD!+Sqy#zC{gN4Eg%(R@` zXD=s(3L+a!JIE+ONLTO7pfQ?5K@yfEN*!6E5#~F(T<3&3lDCpb6`F?%d7!Dw%9VJ0 zA&m|IJDXRDl2en?tOeL>%k94YuZLVq&sO~9`1$XA$>El50XE6M@lOR-`p#v#7LW1u z+&jexn75+)bl}elOaVK``iVb(j}rm;RC%ANH;(?i1*QfNCK2ibuXEno4(b(D1x4(} zJ*n51wooBs$$$aL-+wJ55Qq`RL(}c+zaE7QQA#&&r`G)*P9=mJB{RRLb8VaC0iXu( zetnZV(~n*dTZam9qXP*x`c@xtjH^f>k^FJ!TwA03?R?)aJxDrZTo&ON@H#PC935lde4 zzmG|r`Oj%$Q;tiuJ!$UegzVg-a6YKN^7teQx2SC5l@s&V2P-V>Q%j29C~?SP5DyD07{7GL%rH2|i6QyO)c{n>m-U6P{6zBTuux zC@pfF(<<@$Us84AS1UNAF9i*sI=w|;D+ftX-Y&Ix{{ZiSbzZs$s5Re@zZRk&!ke$B zjo~ZizMp{Ump}0J+-mZFnfczipS67AD>7rsuO}SdI&A04nnp8y1gywy!+XeSFeBn5 zhM48s>yI+n>QVwT4hIwCr^wL6f&!NysDt(6oqYGPQr6t{djp)F%~S7q2Qx%<9F|i*(C)h0uNciyW9NV5pe4u8RqZ=f()1hR-hmgW2&oSg@-uJ#jDbbS=;)of|zD-=wRZ5_Jme1GMjZ_eJ zOfsh@=Z^1%7f1U!eW`AHefg*X;<4fMhVQ>5ChQquSaIJF>*(@`C~aP!S9sIa_V}@1 zVe%t(m#rVOc`RE_6oJRQe?5G86*4ariO_Uuj~3WN!oWWF zi_%pGgfS6PLH3GmI(MBcF-VBBRF>2Nq2+=c)KDTbI&c_?veeN8flvmp;-?C&d}mQTL(9kfn{a)+! z`40;z@(P0S0JlI$zlQf%@G;}WRnw-z6{n8HxD^QlK>%Lq(c<;ZFMcj_CW)rgbL02* z;^R-rf1j(Iu`c+E_(oH!v)3K}0PG<`obTg5FyORrNTeYoI3E*?yMG=ws%Bd;xzO-? z^0_hOu`~#J>y0z#$-a{0=FjyjTk+yvYGD&O#%hs5$`?F9r&_&}nLBTh691wfXQGR*wRVMck&o?&pqy$P17V)`Y&9)5GC~ zFsF25cH8yq?>2AXP4Gu1AYe>_8v5GFYWq`Rjfe_7y|Ta*|0ecu#Qqy;mbg!wqU z{Nd$9cAVEWBR&I-$$3vBSZ@vByzQR9esiy|={|k`0A32Qj#Caf*RI;yjPNUy#9wIf z@A<#497>|msO}T*`FZ2PX_Ojk@pFgrQ+$|MfN{cphdq3B`4vEhs=yPU>)%hfY5>x4 zH+_0OW^{Q3LM|xs>8&=W@!_jWSR9f~DzUN~lfz0$!AF&xhV))N_?*;jPzE;=rv3bP z;K<;T{B!)~{{VhH90dr9&iej?<-+NYtSozVJCOFTk{$G}`}+R?N7sx9qY`n>^PK)~ z&!IU8Ghv4YyTOQWqL`}*)I9q9I& z^*8s<^NW$DULh0I?p58-NU4U4vb#C5emy;&DqCXXkrC>L!% zj>x6v!#(kSyh1euP@kO7e19$S_Osj#-POSV0J!kM1%Z%P&%gfn!o>@s*7caPc+Z~) zlQ>VAo7d0R?GTte!2^!p<32m`tFYl#H8tU*wOiuj2f&25uwM8>=(!Lf?t| zKg{tnsn`^s2XfVMTR5U{=L#~XLoi&1%p`vHxWu%54oiCKWth>KgH@EN`Z*3lXF)Z`zV z_^}2W$UdU2G*^#9o-&1mBTx|QN1_bm9PwDWIA$>ID8HUJ#A+faFEa8TpULdL0)bCW zO)0W|KTL;)qqCl^(YLt}fnD>r7k;;?$vufPo$yloX5Ke=UEY2<>80nLT4!77_s^qz z*`mbG9iJIn$9}w3qDBol=FSJ?{$CCO){9q5Nx=Nf{XCV22jNxaYN`ZEfP#p+Dk@Y{ zsLNwy-w;*-C$!U2M3pg&IFE!%WfgPGyBVR~EaCA%Vk!aw13i~Vz@t=z(G1K)144p| zuZGWxv;}ew9;DZwUIK}2PEu~8p7ZWC@*o=J!i70MJW}S_ zf^=0rO?byZy510+fyv>J0Cf|=@{HBOhg=PjIR066OL`$_RmjQ9LbxME5`if+VoZ_2 z0DQ5a(m+JuQUOkRdN2UA3gl8(4Hb?}6+rhyls!1%%z1e<=FJB`Fa(R!{{RPmIwFS* zugQ|B^UtqkBLt{%4*P(0$6g?U+{K~pY0DV#4!j`+s6k)?f69+Sc1F}9BH7Rk05d;%A&0l zls^90-w=%qF~#CNO`LN6Jc*}BSyXOGo5S9|OA9Rt&htGxqr17{`Y5F2!#=HM?t1c- zs0mznd50{0J!h{V5Ly{5__g;Oyk{OQaBxZA=rnzE`S3*LSFB|YRg*9r{J?i-sMzm6 z!gZ9h5d~A9jWgBxI`!ize%+)Pw{=hLk8eQ$mOMUyzU{eRPs70Gw7y<_#iAFf## z;`8z&f$NOT_vbK9T}A_XGuI6H@KsnMfFmv)7D~aiI1GTraw+WMJoV_>N7DvzZuEa2 z$vf~O)xO$8k46vVIXn=xnX{L81NU|Kd=M)IUKl?d^U8jo0Gf-{yOy(}_5Qr)@!tLp zKfjJU5=Cm)@$2Ti`tNj+%HnPG&rFk@AJV1aq{Ug+dA<9);_OSYTXD?KuUqCJc7t=& z0TLSzUmN8HVsQC6{=IwgM*S^ZSKllBWc08ksEYGV#c=*lzaTdH0Ogp~H@fe?B&ZDb zzIUAF+xqhq`okfjC)UYHD0_RgLVo6mBUdEUOyfn!PAEJ$!Gq*6V4|vi9LZ<32*-ZFNg|^ zN^nsGpVM8|W3f)kG34lHUiQy5F!UesRsLgVy5d5jN@x5X#&_si7jx>tYf{+Egqop=SuK3~d0bL~1Va%W3^E`n!4PnL# z#yoxX;;Bm3?;PSo<9++@!D!NRr#VOu;`91E0cet-sHUW_@AAGxRuimgX~@s>^W%ra zFbV|V27l7{Aq*?bbT>vHu;;HMLL{(reNWFnyAmSp9e^8v4g;(nd_bDoXoI{_?>=u& znc-{>#L2>YROjJO0H!fh7K-*FxYVQ1faL@I{@ro;;H^mvs7Rx}RRdGXEud8OENqL2Ya1+#)z%2KHcupvldlw7N& zgcaDRE`oiCEyW3U7^G+pF3IH=@w=WZPAgEmP-zlr04Ro+rn>w&F5hVNtsm4Kh-=H(Hv6^=`%OzZ(a>OEr91%SN!+lI~gY2V5)7}q|=`K6x%r( z0Q`;Y>od(nW(CmWhjimN-0%(pfMqJ&7hbxr9{lN1B}F+?00EoFSAZWf11$w;>7r^d z;vN)<^D|fAm^0DW~C}|kx_knc$W6zg2Kq_!# zQRkNzo_WMDjG9};k30T&)6PJ-Gm-Cw5&UjkI92}|Fq_CMx%5Y{emeE$GWoAckCgr&>t?|;W{jCGWP zm8-;e;uqg?$^;z=eoIn&W_uK;C78~7_|jFs9r#pkLrv&&n>FS5eLv;%G*{WHJ!OJdXV+eGff>sG0Bw)QS-a!av!yt>uUY)_d;=UR6P`5r z`QQ(J9^1z~4ik9aZ`CPLU51J~f;R3yxbvE{9ay>&8uRPp%7io~ET5N^d;WRxOH(YH zBx*OE&Oc9@1JtBmK5}6iS4{FbacMwje*J!Yqq$#q?Dp#nqAD9&6#II2z6<7zPBI*%&N%tU zd+?&8>qU46na|u8*O_#aIIed59hu)6REmb)a-??iwh*^KBBrq9or}*6g}#=rh~5YV ziyLzC_uTz>k)S~Y3nRQK@y7b#5eJb=*y2W4!u8`;!3xe8eamyp$r%>mMu+H#@%cF!_}3U+=~dt!ft| znZupu3%39iFexEMnr3GA{!q1ah;6Skd+(2r0gzbhXr&^-MWSImC|U#z1b`4y)<}hX zwKziTNR=>#E4Z@wq+U5q5p@V9C=MQNu4cRg{d$N;PJD2*k2N*qA3^b7?V6QxL{q`U z$)%ID@Oc!9R)!MD4#8Z;PCnAB1>8BdZ_L;LuyKd0EKLUvZ~X z$U&tCrRKY4oa~(Mh@1zrreu0Fd-QmA5<#O!SFT*l`tr1>bEO}%rJnbMbH)I90&t^V zT)wl`_^y{?Tt_`0u=Un#zmu~sJq1EUX<1$oL>hhA}Id=FqwM8 z^TEyd{#@|D5Efl0KJ!nnp8x|B6p7CJyFKT~2tjSREq}x_eWA~Na@b0Tf)+BBm|O{!p)Gyn@Gdu_^Rs_ke0X^AlP^HA%a!59`lyz$ znz!X9F`M%|Y@rjA7i_bP=d;&?(VS;vMEL&zKM#XKgRVJ8BvAP4t-c0|=q5EecShQu zJ|V~#M?;D4z`j9gCkV!W zU3_nbk!dt2UN=Pd`#fN@lLKCRo!#%%o=msU?K%Rxf$P5kM0QeFZc>ZSDZacw#Ndd} zt37;v{7H(MC<2$;&%gA(5eyfevX4Ix*7M>jNY9LNV+US;+2(;R8ag@a{_Od2MQAcF z81S`zv)`Wvuuac{+V*eM@KuGbk|TM3Q6U)va?2P%5{Z|zja`4CD9oy|?1!tz0!Ezp zfPqR%Yryeb#~ukGRo()WnRDh#Nsp2*Mp6af+3w)JtDY_fwyofOZ#B6iYaDVs8VzOFq zz`_9>6EU9FrCcu!6=lzA5u9HbD1j7*m1r)y7%R##nsJB#RZ3nFJ$ehc^fi*aUf)Fe z@$Vc~kJI@RuNa9@gU1G7`c-KE0FYo*DTF&sY~BvNcw6 z;Q}y=ytEd}ufHKd3A8;Ms7TLj>^!HW11+B9t34gBeh4TvV;s19eDLqboI-|d9kqrh z=QH1kL8ARoy)~In92dkGi8!_2gmvwC$ammEHRl#rFYALO@D+?EpD(Ta^8S1k7yukp za_0TQbI&C@4+>&Y^!nLd@CdU6L{efCLp5>l2D#oL)0opf4F3RO@H~W5E9n0KuY)QB zep-5V+^oBk$|Jyp)I|_nPnpk*vl0O|npxqU05)N_O$?;k9vXtnM4pEVLIdIjz9QXs2Of_BM6XmQ#`8=W` z5d&+_7mgptbIZ{_JzmG3cDIkmfEk^Jh9>vd&&S7yfb&5 zpZEQqO*7GWSmf`%d-&y~$m6aLT`ODP)$pc@awsadx0%^4+(BB31x2>8-T3+Iz`Pij z=);ro`saL6YfMjVmg6@WUwP)(2ca<`H=uucqvafVbhsT?yHA1hkmeJVDqbA-!m=lg zyt@eI=G5x%!gwV$06?_2Jrk36Z1RKMVNbm02jk}U!L<&CRx*&o(K$5*ih&=aR*hBH zO#!qIC`G1_wyi=TM@xl@fKlQ?#27}n66PQeNTq5dXdsBDkT~TLP3Ok)K#=8m>XkWk zv+u)bJ2~&7-){W#+O~4MAQ-NEC<4N%z9RynB5}xYZmWj5bvCC{o|;SF5%Gkd=mhhGu;>|3n( zy6v+!&56yskJFDwviKbec9y|1#rOHwmy-i}v5Mpx7w3c59vB2UqVw-bT{{S9pu zd?+H@6IWFdemWllsA9bYbz%d@Rp&edU}_vt$Jh7fj1bU^#oL6OFZFy31q2A{g?s1n zyX2Jn8b`az{V(S{a49okRl*cTcl?o}X%k;|Zzo-P)xCH^$WUp^9QT$^A*1H#m+GTl z;#8;eEbuf#alu#jv!Bm?Sn4KDn7>o2%U_#EVX<27=O1U`bHh@h*4LB>z1VgS#*XoT zZ{Ya);zjwsA*w-;fKmA5{{SVgf(4-BXX7`2?|v{GBN=$@a;neoeLFD1m_1^mQ3g|WH;%)cG&HZ^%fEs2zC@%wE;a{&I zzyruP>y)_ft@-c=bu;BHX~*NIRAP>Rfbhw^uSDt-gW@y>b*H|aRomC-M5-N2Q=KQr z9<$d(!&)L%db~Y<*URk_x%H3zCth<1b11&pt}@6*Sq&lRwWPd0$wFyO(%%jGN@2n~BuFrMB?74zsz z2QC{&m%l;p$w^{0``$UdKUc!nQD7?^X#Tl3cMg*Z%_TFzt-SRwC)ZYnC%0C@!Cnv9BZiZQhG zkk!U3+B|M&Xh0F=!35qn9#4$SMGvn_73v)S0Djrv0Bn-`06 zJ$S{6wLAVQpbY zxGJgidm?>!0nbklVLnrwi6@Ls@rPPm&AfHPoq2-Eh4$ll-XHzL%z}iMQy-@F*Z9+v zmj+PuokuUybKrc0Qyd1u&E5~{_&RYQ^-zyqr@Z6Fcud&Lc$%Y`!|C}+p}jCA3%GTA z+(7XKAT^!R$U5toeE7o6YOCKV{{T48h<%L?CL3r|`1s`Wd@#L`!i|H1Ko^06|Q3A!IIpImd-z zQ3w#I!3a<+9{~W3MwIJk0P|nT<5f^z;wBVPn!CmwS8uJcQ{hfbs0-;QR1G zb}e6%45#t*ckQFW0)$j|f&K~NB8#EWA>Ew^d&eC3TZBrGiKA7-?<2{_j#MB4YR24L z{{B4WHFp^q_Tl5MjeH|DP6rpFmmBdtW>O*0s2~!W;AQW`!T^jZ!geBlSJm)Z*HD{& ztMk7dU4T&4co3BM%}Xfpkua`MFV*xP`QMEdc15BpYPuV9>)FX9S6-g+N!MO&34yuA zEzW(S ztSvO`2d=zIplEBxeP;b<^pyzM@jCQiKNC`0y%2j8scbtG zfe5R(nF0|Z2UyKvcnDEi zp#h-AR6om6!30cdAO#a#@B4GZXgLu@coupwqN9|2v_WxT(WO|<1=Y93fM^;Gef<5q z&t3s!Kqa28^NO3|C`g#o>a&#p0G|m46+d3~&U^b^@M9?=nq>|>Z{z1YMMSuJj(Y1{ z-2C4GTf?!A0}qY|i@JjPsw=_FIGleM%8=4U_Uw3m8+U^|_(EJVpx3MK(BCwPSQqlq z>~lSOPZF18-Mq&STQd(81l*jA=ZBBaKOSf)Rb!mUVR-s}I8soK)UHilP3)$#!~NqoC{GG39#Kgt5EFB6sn3u}h>bhThP2h} zr+x{bf9D-c;rwra(^s&pS8`K}!3dD&_O z7U1kYsKcM&p@&l$zO(rs@5dB|D@82`6wB>@%!<>o6CX;Mxz@Yk6bTxF!Ob)SjMVGK z4HvzwQc_@FZ^wW_n5Kstm(rddf(Sh2ApghfL>FN5KsjbKLv!@alq^X^sm=K+|L#6vAb{gnG~SrBz5; zH9B%n$dL+0`9n-*EWHx7%@dvOd85NmH#d`ypUQYVn1j5KHHX*FJ~5m`3AdED-h0~H zYEfq(t!|$M@A>_K!isXd_3_5~yxkaz&8XE7I)M|BpFTB0)g;FQsmG$WV>p1VSPRf1 z4!Qf?P@80x$OO>%i`aDigtbO?k z**%Oj;(s~!@4zbx3MK98(RaH!_v4Qwx;~=Zdg1=~d|a;&18;rg?}>q)F6$50{eSNA zm%$Voe@(02AIBNTnKj6>RA`*>q9QdKXOMN!>CPH$E-OsScxaIj#H!v=wtQ!QJ{y8r z#W{7ko!u{%HoLgr$7p@oJzyeJ;7YF?6hPzd;(0_!bX&2UaID$&EqqiY5#^+3X8OAg zuZ034+fDBtT0Z{(F5d=)6%A29HL3E4M}i2^O-cr>5PRb0c;QEZh`BJIu1}7l5)%Pl z>&M&s&Q1dLmiyisIO+cU4(4!h>#@#0JW^xOK-8QsT!ph|#*9aq%D0uh>j$aFAgVGQ zJH;gFAAeo>09D{?5k{vd>XVS$<5{5shYvwbDaKDlz5?-Dn&QBJ+^=4r0^=Y-I`l9< ze1C!L5}1O$C^~!IpCXA6c`R|!uYSKN;$+n4RHQ|=h-&aA0{cWo7_P~P&K^DG@g^v+ z0_Z|%!0o~3z*LE3Fr+SK7AU}x@myYB_b#x8b2Hi9%nG)g^eXTfWVQFF4Du^Hs(yV*usra4%A}%k;FC`lH*BN{o8E|AMLr| zRUw^X9W+PYZ$CiAwGo`#oN_;y&#}pjHYv+@b8y}b9Pv>a<1+i}LUHw7@#kYXJ)KMP zwfX77wFC=9Md&$kD$37(VPREHI|wGL*6h{FVIfO{)L7#p%MCnfpaNKG(Q0yPEd`!V zn_~ndc};n_ZN9wV5)Q*S60Rd(n_QkSAn1DMrM7%ud(8t>h!K!Yh0++`@#9Dw#4-N= z01^E@QB~129?x8SWF|}FQ82j5snTCjzP@}9fRVO}XqsC!{CP@%1n5}HD`zzK>&*pG zGbDpj9ZbHzJ|R_|YhyYmb@BNlroAyYca}p7?~U*TaP?ER?n%e0PCQsj^ohLh57h6E z0>vOwrMSu`KOQ4G9T(rr(LM9|@GU5lhv)a#Epi42h^vihQ}hX(^UwDeXx`_F1+2p? z)Sf<@MLRLGlPSH=35JkCpyBwi)03YD!;=*K_Dw!Lap3}TjT?^(@z#R(d|_~)aAHl-JV%-9d1vFFATdnhelXwl>+VY>`H>vA=6pjfe4$l1m@zHS_4nX| zWp~i=J+_&qe%ICGG5hol*E50fF~Fm816Los-1p*mwTlXzDG)b~Pc#VRkyeE+;~25~ z@HlEja8s03O1s=W9yw7dH;C!O>oeas#ONZWBbXC@{x{y87ne}*(dpvn@8`%P_^-L` zUL^eT^We1;S?>ebnct(d@~>5RdY$sGf7{H80j-(Xt{08YY&Xk7wFXQcCm+XOzYr7z zdRGcMa5;GVk- z5IUhLcK)%?f8)ep02+e<5rq*%v8aU)F^qA|b_7Vb-boAN0O&HS7haRD9(Rul0x$$n zoHw!8>G6UFMG}I;1$gvtTx(MVi;4)vpql3hkbD~<-D(#S)WG8NI`DZCI6}g^S?F{j z#U;uklNC(C$6C9D@ru?;rfiOS*Pq{ri_58J^ZLy3V*>*6d)~T# zlfY#$rz)AsSMwv!i!^nkdz}`yo{yg^?E;`n)7cw&>zBYIG@EX7vVSu-dvgVc@68rsusq%LGQ1Lx%c7-k~Rbqjy?SRIJd?$ zJ5ZP$AaXpHo5XxT2T5aJk#G)^i(P!DeYg_J{PIN8UOjoF?wa?)kV7;5I{8otd*{;Y zmwtZ}!YUz3(^W@Z^l{&Y9QYaxb*p}H^J?ug5|Ye_Jz1T;1$1zrOvyA)&wl(h2hlNmt|gNhn1&vVA2Vq7=l@8|d6D;+e8 z&`jn|JygfQc@AYN2r3@VSXZKeR#tS8x|M06x9a!c5zwL`jovx$^_hGDa6mh{dYt=y ze;x+113v4`Jx`~Wc_NFs!SD0!ofFDUdiAg+U@J z@{sWeknBfPRTx^R@&w?5!LyeQH;j9EG|vflUk~B@zZVWk@+H8Eu+X%d!}0QYD0={H?%EdoW%=cyCl*h|`1!wIejyMMXU9hky!Y>^=B!BA zR2}+GuBs zrlNv6q$V!6=k9gm1-5b!Jwn}P=)3D!+eSPWHdtOg{qw_^HpZV9)A{SlG8ppVF8W{S z)=wQYMBWY;lv(dTi;t>>T$zmHslR+_Zw3(7#W+dFy`5)*?LqAFG5N{KIS-!{5g-CK z0xMr+>p8w9F(Qar4sI}^CxQluz@wqFTIspKK3f#%2(L`#oILTw@Cg7i(~|Hr9kc7f z1r&LBIok(I!{~2_2O>Hxjti2${nOKx!-h$0!zaAeHu$|yXn@wrJa@4@?}rQl6(AX@ z-sc?8D6JW9M<4Wk`rr{$UqM^y{BfDjuOm{XB|gwPGQY08BtFp^j=kf-DV4l=1DHGp zp8zGx)cE-TCcR_M_xbty@e$|+kOO6;XAio`bP!;)DbJ_hSL=E6LBP-;z&UUQ`S%tc zOr;Zx5dqgS=>EJ0s=%NGNi^1S!-vF#LwZ$tBwe8!)5QSL01iVTWx|@bJP1HVPC%m* zMK`w-x|ENUjZX2KwUk~zn%3UqxBS+)#7x&Np z`LLOXTk;(|pZY!!Do33(d#`;)+xelJ_ibk#^ziRTIMsw%5H3TAiJPZ7hk$UALdJ2| z)xsuZ-#8FUT#<2BtOfn|<``>KSQ*2@UXAS`;xtpDWf%h>$3DDZF`V>k$f|y$-IDnv z%4jAMG#DGn?)jVussOE&wSmVEIn41PiwZmg2#3SnEHivgor<7nEMkZE_2sISrH(gP z2N*l3miTH{gj7}m62BY6&!)s8mguW zc!qMg9njW!swxl%?xt!7-a`fQ))427r@iB;?EMu+g^f8+i}C#4Y$)FL`e$dtr$0VO zO?rMaS5K?Qcme5QZnKOOk?LX0?tW5XrI?>OMuQEVbR1d|uO_-Bx49dXyh-^ZE=Dnit6NDXHnr*Tk1 z-ax^0fmmwqv~~;uqKxmJK3;P2r2{%&Zd~q}UDxAvB_3}XwfcTOS)vUiPzhPZ=jxZ| zd=RKC;4tR|wQijm)Bf-MZ-||OT%7U0$2Ld4AgBk*+B1h-corvBg_@;V(bM=ms0OM8 z6%-5Y?M``k^1#Ro#*>kE-hL$Wg;hZkfsjX!d^ejsGb8}cM3>z&3*WybRWCpQQ5I&F zpB6yyyGY&P=irtG*}e+GQwf7L!2CSP+1QmZu1I|IztZ>OD?@ZzOepEyem!}xKHQ3_ zLrZBIe@}@RV-fBgQO{lf06fv9I9$ejZ|-fFXPBU~p=_O>2l?7(jXS}@kY{K2ALD!l zrD8f6Tf%ql+u;qVNv9eoZl+Ej9Qk52;X1!dAZOLN|92GyU#{=lv8A`WSgD5TbrVIwuPFf;;q<|uB&`b zDh>sM5#!hPNW3+Qdd0Azl6dVt)E$V>l$+*X# zN9e%uRlsc`-ITpp7nST`k{zLUaqav2f$3=#-`{>$Bttpq-D|jddT)v5K%>KUM_OyfZ`X>ZvxY@Tm4!X`@|osGZjRnqh8xG{ z*NIgNA_ERh`{#b%RA6WzN+yHQ$&chLC^9Z1aF9(+bRW#2V zz|!MyS;Dz0J-(9>UZjP7*vOEeP;iE?!8rNK1)z|j0Hem36hz_6L<&V1(PcmakUY5I zo2SoTd|?dnybQ+fra)fX{qG8tgnJ~p20bC@sQ2R`N~cI_Rdl!F{{VFe-c)uz;%N!K zuWt%{+|aNWh6hJf`0+@|bF?@4e|=9CY`~S*C8uA0@Va?suAd6L5bAFG`11r(Af2{) z9)v@joxlo>pjf!p)2F`e${3-AjpDY=TYh%sc|wMjF)>N6TKYNUimKFQ097NQ%WzB& zB5DUP&w&qKt|y9#+SIa5rgOwi0PSD6PtD*$@G3>+lK1{+9)&7VB?tj|Pj2{4y`PbZn5ZJethbEe zIE_SHK&*73S&SYZ645FIQ+4sQ2a^j;Pv4}x?x`Gp(ZQCqjTC;EakiY&g%4j-xHJ4C#F9Ln{Q{6r2{&L zy22+ePG;gGMwHW+zIim4={$fNDK=3}cz64q>O(^_2bL}7e!aofSq&V=}Eu{fb7vydUE{v2#Tv3(ThQ; z>Qf~3Rn)q4) zv{d(6@4UaS8m&tLULBhVbW@!0F+ zey@z2GpGW6$gAJQ>%dT?4m=a4JY^zJD-5}YL1xrmCoJdWP&h)<*A*~6`gzU+j`wzytnYB;7qy#%wbi*TjZRt z>L6f!2Dg&to+ud0%enLSza)9^vyq{bGY>c3{NDv8%LQ<2n*iVbac3}zq+>IF`sa6_ zAX3v3L~j}K-(I)Lk364;cKn$;?~eshy}Fl_*ZuwVkf{p{-V9V61E1rpkI0ymcis5> zV;w=oVv`OZ#Z&tjXhOQ0)`olj3_LaHSBXW_eLKCGcg~4NYB6jwb@$gZ!O3(-rPZ3% z!tLYL6FFO&?1sIC{GWainkq9Yag-h&VE#NtCD8#3k%Po5s07794ImIg6-yL;(cca# z1}aJLUNHT9c-BZQu$!zCjeD(kX?S!u2(t!nWawkIq zhz1ml%m;<|OIY97VxH5kUfeAx>ODFsH2zXJc(GoD%x?Snd-#KVa`Ui0-oHPNEzc1d z(iQmDUUGf>@`=El{+lw$mN(acT2^b!{{Y|D&$#G|6GxumyVT_HVu<7P9e(Hbo)8D7 z2+N()ey6j$)+!Sz06%z z!kC4qi^_b4PlGqZM=>f50m~3LbB;Wc?idSjzz{FTb0?N6AymA^mWA!_zoV431t!sc`3 zz(AC6DO@xTF6#WwtpalgG9p|*^s7KnNG-d-zP-PT zJ#@YJP(o^PY&hiHd4Iy{{z_fZIPdLVya?6qfM=}XzNOB!@r+lb zJ3L27j6oc>2FcZSW<(bXs9sqryqtV^Mw;?~T_Ay8Obd}IPyr1nfkl-umhuvD!m(~B z47nMH}w_0Q3T}ACuzKHr~VW<;WD5bvFmO+0RFkF#8P>v-so#CUUSY zK}^LC~JggEeDBxRZt|02V00KBgf*QCL&;?oLM1xoZOxJ6z zyy*M#(J5S2jVhVNlRiF4V^~ERa({0ePoEG@N-I0lZ`N;Lx2T;0fRp_`u;BOM0O+LT z$g*?C1pfeNr~P<4!o8k!=-M-yG2CwfH=zfMw~ko~Pd%_3?gvKmxnc zlZ)(Lw;zuwS$O6_Z#mJ)#Li7c3r*<6<9mOvp8&$e^_yPyUjG1}0F&7nxbY6B&6~#f z5NUYA4$8cT6KwSzQDRv2K z`3%^)kyyl@&A!>ckB%#r@JaE|uRkwk>WPSL;gcMSt>0mWI{R_{5 z09_!Hk-ZE1&Ux@-btwuqXqR8V&w@~Et@-#$imviUXl!^FooeuTL&v!g%H>Cy# zy*~MU0mqrCh#MH>5S)KcA>}|50TL;(6M3T9(6m;@x&dNx=6naqIq|}Bf^a_P(f8|q zEEQ-qVYeIY2|73rA4cG&0@OL3bF{odfTI^A!!!7yzF|V@j#60mX-qnh7c_)L;e%z% z%>Mud@(~(R=uc=%x$tK@1}1<(R0p$tWSl*-%(Ci-d`^Ro_ICJ?iV_v2>pSoLc_=3; zglM`KUZKmKcqLT~C`$vl&Up3l;G_v>))JaG+~NPdB6RZ){_da=5x#72inh$o zJF%xSA1N+i`&RW~?qL~RFtk)zZ%w|EJC%LYGD4fB1@?%z!ME$#-v z(7k!CO>+H*hOD!scQ*^}ClX^?eK>G^$r+#Nx*)?W2fi+B3>B3!KJ zb;8q_pt~$(obY+@J_q=p>8I}F<29?90?n7iCLK|P9Xc&iY4{=;5}!m1Ngoz!a2wL8ZM zBQFqo+UHZ$`J;`(esyI@skHlWU52^fnCH8fl6v3Vkg=H;z#9Lt|J7qoEG0DQ-D#fZ z$BS>1qP-@s?cQCyez^fn+;Mr@H~a6OvKKu{F+axO;w+uAM$zrHnCp&0#QOUDMSUu6 zRc9chRGIUdURM?JpyuVju)pv81T|Coqkx09MH`?dvwigSNhyFaW1xXp{jU0QA0!R@ zaAbd<_E7Fd(_xi9&Ott>R;utP9Kj<$DaSyQa!a``Ia7nwariAMi-mP~J9BFF)$=mO zy~jYF_Yaso{ld8IzDTFo!lI)2@pIt;%TFjgkBFekGU33>lPETNKShQ0$ZzWzF!S@5 zZ1`E>zoEEN6US81(A-(g3!V)zA7IGl=4|Nc9gm!u;o|=Qx9#pnilC5LJ$O#@j5#r7 z_(*xK_rMi-rO_%;skwQ1g4vRrWguY&(DUdOKGZRfC$xKd1Pb0nkKh$11_yaHAsUHM zmL3^Z%GXd-RTlXZ33mTiz4v};v6KHCw`_>%17cP7*{Oa#ODN)cl|dG3aNq4DaqvgD zE1_Pi#raa!V!l`>qgWvASP@}d0R&gd|2s8<$e?sjp``RFb+mn-C! zR8!911Q7shB8%8kM6x^N$28)Cf!V&_9`_G;A{Hl+GdfN#Hu$S17tQ?oQ-ZZr2AhV9 zs>p-a^MZn!_hY@7DPmH$`_CLKhXX*`ty^Z^Q?o|-Z=RDq@LUBaTh84|f!0ctt=onJ*OsPQ0_LF@Q!7N&Zkk9(e&$*izxWLIm@(1x;Glukf>@B zJ4h`{R^V*K#*Tap`^$kr_PZwNShHCNBa^xFR|TvKyJnW}%Mu1ckMCWYR=>S`G5#?e zxN7|Pg6qd!)BL*&>;jfyrDvyJ#P%@7#Ou?ojyN48$4Xk60Za_-svn$UVHTO82ACAX*;!Y_4#Piq*o&?G5q`{ zH>l7Q-N2rYP(S=JqHs?YC|`Rb@mXL!2O3Io{D+mPrmr6$#N>>r0ORACoQVwYAWr1B zz=|1n&bQK008a7 zKOHix=9z=pi?XH!lL~$HR!_g$(c`>z$4IzyUr6y)mCs+RN7gmu<)=p+eUbL=F+g$p z&@FTBKLg+0nBV$Bw&R+P3>A*48k1&M*?C^=QS~JY-Z!k+?JfPiS4Q1SxtmOyG&OsD zJkkP2sPz0@_@@+J$f`rXD83oMrtthHdcQP#=GTL8clJM{w(?R1Ohqt*#=vC|bbr_2 zN9o{QlOpN}RS8P6j){ae3REg-loIgHUcLZXaU9Z7l_fs#LMbE{M7iMjqHN$l0F7Wc zJe#+e<6(qRB(P4093WOYSDYjL(<-r@+9IjlSo_3?yD!Y#Jncp+QD!SdmqKok9KT_B zH!WRqxQpJlX0`j|>jhx++#`Hw{n3wxEzmB3%z&-E?|PyxRwYLFd~=8uTpY>@B$w}q zs%52=`PxaW{7tJxx zQ_w5z6O}i$-{rPPVHOA9?&TL=C#26~Ib{GeQ<(CFRTC@$D9gjcyITe)n{s-I5P5(V ze%7)#^k@jGpx0yi2`g!j!HJ}MMz7d4hP&K8nL$%(tVtm&{b_$5Z}-Y|Rc5~Yu4!yyzc49Dm+~3Ya54aZtf43Oi|9Glx=@ zIsce=uA9gD+1@{WFY>xkhf#>ZQnYAt&se8^g^oR8t2yC?lHJ#Bm*qFP{%~|Y*`wdICEbzNM+z?~_z%Fc<@sgg z8?5M{Wt?WUfJKx5-ln>J{ZDaP_+^a$P9^J)xw>&=qnM7tY9$%n$*rRDd zF70*vr*OIQ z*9#|=pxJct89pjpS(v1xTHC1%nlJiy{SrNC?6#V* zeXY!_Ix_t1s3}1E21^h_0aMjEXq(kPE@%u6YuF!}ruy(>j6o#Rq{B0DqrQC{><>(7 z8|^Eh|1&@dq_EmDSHlPX3pq*b;4`%}4^g_@4iAFU1_8hOr|qTxo+T{#f=`?D$Defj zaXXKV{S}7ekX8EI z!PZq+cZL*5b~7(FIdcBb96VKX+MQgyOu6y&2sioy_k*_cq?LDjhH|4;O5ik{C`c#t zT}}P7!3TxCv8T07@4YOaXw3dOQ8iaq*>8W4lt69^ON@`2pfBEDl{cM$-wOeHPuOf< z+~NdysQV0&*0yAZu!!gVas{U?KfTXtO0dP6P27RXF>A#F* zZaB$M^T6my9lPu2D0bjuH^<`pZ>2z)SbZSNQSZqdE%zB+K$t9VhSY`olWfdfGh-b> z320~p*GC~$Y)pcGKeoLfB^ApjR84(7T`u*Y{%P@suAzylhiyognL$?Hw*HH+yveLf zs7S@{=i#SRf#bi}jFY%2WtsB$?@U9ySqiS?IscLE%|sy*t1P`l*1wkCtA{7P5&CXO ze`Gj{>YRd0%76JyzRLMXu*i>|?rWUWn*n-b=QXLEhjIxtW9&kJm4z$)Z=Wwue4v5# zALY+tjy3(im>$rf7NS%lW_~DQX?w-%E9($Pqdo(g=*2`xXUMnb?qih?MBxXbUv8QI zyGBvdjx>4N>Lp1On-1k!0Cz5jLu7sWdydc~h*$wVlj???uOS35Kqgk_c8#CGG1L36 zql6WPz#oICcair~T6M}+BOabgl_6Ti7@u;!mwP<3 z6n+`8mZL11Jx1nrz$5N^*T#E&Z(h?#>x&bS*Vn6cE$7?3j4A|# zJTi=?a{%RMjRmR1aGJkyJC>jgHk$e{jVHca*uv+MLghKcc8JvWA*aG0MU9lj zhV}64+2E}?@hZM;3G2zg`1PbTJk9I;^}SRtp@&}}u#p`7;6AqZ{)LLR9e!!r(ofVl zro;wBDWY#RTLe!OdLLMisqZI!xH}Z7HI4Q?z`TC{&wB3dvW04n!qWSa>tF>VIW@l= zkuAqR`LZF|Dzd`H`rrxMNWVF8-x_0Ph-BvAMTmuw6Ba%^I7NtN0AU+;**jsy!eaCq zSwobj$)eiA<3W&hI4wMvwwxAPp&-?<1&)3IXASysLzKJWZ0@M#I=Tgpe9W*Mt`WUG z?~qyAdOoBKG-l?Vk=|{U3%yiqoKH}=7u28qK7wr%iw%ZV?>!t$NbeIdcoAKn*%zSy zaB{~G-THq{V=^IglTAa>{oPx=7p!WonZ~5ggCW~k_MfDUOqo9SLkDkhqJrEY?sGJk z+p{%#~2T>9J;Kv^dcJNWWCvmrkvGESR$O-g=5K$3xS!(XzHSsKya-50g-O z-+nK)&OMR7=`5n|(}3>~Gmt8v<#)-$2tMgJd5hO*C&k>Ca#7M)y;fW$O1pkc0Q*x! z2-`ZZZhK5{42W{Dl1Ooro*7Ek4r_nxv;)r1pbPE17h}xEpj%XmT#jG;cXW~}8TbRs0vtTIdVp~|sYeflsky%2?x?oYz~-Dv_fq1;hGan(gvssccIiI{UN{FW?GL>ftGjct6+w6! zELC`J_bneAFg__3ac+S7AU~9w_^=a@k}6dJEwDm$3YsT+L{T1Yasv=h5^dW2_~KUa zxc=wxzny=1YJU)ea3Iu7qh=sHK_E#r4p?s7SZQ)a^Qz=)%TO&+{1)_uyE30Fs1b<^ z@-sdx#WEy0Pc}(?XcfJv+-K0dCHOp);>MSuDK37WyE9DTUw9^=5{fRc&3>`|DyRHN zjU#>W^hV|x(st`Rt#M>Y$$QW(h&P5$H7`O%z{f234O?Vj9% z5FaUUjj*B=!;a{=D1T%4AK+$bpnM?*U6^X<@CkNO&;6rT-}CIvJHl>^kK;Y~J|+;) zjDBw)chXV7>N|RBk=_^aTXLSGi;VU)fct0r7N9R8X@j$Fs7OtXKv-tueuOeJs^D&o zA)5wKEjuB~x#bN_pLr>9qaYKcG4?bxCqo$uAP>G*$Owwa@Q^zaP@q1=FIj;f2!0%( z|5>|e%;zEy$=M%84)o^K0?1@uaef{fPH9xh2}X8scbv{ixV^r;h5?WYU}|%WwONu( zoHkI^&)g>Tj?CjmZ?-iQ-<-8J#O1}*ke||1@um+V5l&cyW%uR@G?rwJdtuf0t(3*jk1WUCWZHfnSRZi zdddvhQn*9IMiF0|P%pUo*Hqq$WGQooSU#KOnEi%6r6WHNeW!-ReA0oZAfBWLO1{G6 zx!dZi=QjG)O6-~>fk!poJC9bMTi!RF*kAWun!swK{dUbST!)9Isuk2Ia{5n7aD*}u zf>WoDjQ&$(-S|;CgH7mgG6>?D(%GRhyh!apv?0%5&nGs%Gd}dd7(aq&H27OK|H1wX=y^V5O#F8`&+uT$l3UJn zlo~|EjgU4hpG}_9u|wZo=vT0+@L)8@2t}@}rIe546;lLXbC?n~Cq$)$kNzbWfHrA#BbiQx zj?$?WNWNP7r9s!nCY6Ia9}|?DBtC*|QSV8G5V#4%AYPRZ{`z<@FZyihmgEk>F->{% z@Hd+B-z0-*gB61jQQWMCu|tC(Pd!xdMY_e+LtuWCg%~vvz;jXmL2#>?EdgZV^iwP` ziQRWz2b<+tN5Udyl6MKDiVioJRGjY6EfN-mQ0%sn?m=_B=A25x)>4JCB*(vTKa0^? zW8>40@DdH-X72+1k(>H?HT=7nA1NJ8z1EITJpY@Ycm+=ydLZ6RmX(F6nOfq2a?xvK z(vqRbvnqyTJET$bEGBq;|4o!Sr0B5dopS1xjR}jOhOJmOHDl1k$>{n&PeRzG6rb}N->yfT> zfrhB0vO|SH6;vc+&sPaLa5eR+(1sS2M&sQp*g~Y=MmS3q<+)?D*=-4*^0lhBGqzmd z?kII6$vjvG7*$dc!pGZLKPWc4N^Quo;?}IXy9%OO5pYD^$b0Z4nP$>_kKu1( zF9j`h?5Y=Ic754Fe;9Q}! z5O?x3n!kl)N*f0$Cz0SyTv{MMRkE`BEp86Iu@$SF{izNBAG*EtEpxOrdEj|2HPJ*v z99A#@!zbfLeWTMlNG@(uu~O>zfXh>KiMx!v2XfAYftaNyZBu$Df-1`W=|a3zrb1wd zlJM0K!aAW^Ll7We%_)#$7c%|Yt5FqlvKgUz*M7rg6=fJx5nC|N2`S0`)t3063#LY% z-(H)G?#K$^3KMAAc76PPg41*{rtMq2TmNX`FoI1+onh+&;bn`YjxCJ^B3-OaqUN2& zu$6}HcTo3hdE#j-4be*vMa14B6CSFdm|P$vo|d1CtCC*9`N_*9V{TW#p5Q29)%v7c z9fM!}id^b#IqW)P{k<+vIH{totjHafqXj55Pr>)3>7QQrWj_8^ZY{#X-kn)TKSeQXHV#| z0!!smTqr42e2s&IK76c{oZ70Y3Q$Oz=xTdv%esTBl~5ot*-JLQQ6^ElR_-*yfJu z3fid)L{DN6NBTtutYui>&Kb-UoclmLPSBmF=VxX4kPVC)+9ypwq)V(CP|s>D)8%R8 zCaKzTQtdU)2v3;{z3Z32R+@P?%D*uSK`_wHk6yXLZU+I<-3b9r@^8gpGnIguM#kmY;KN-o_u8b=bmwoxoQ13ceuR0@L=nsGbby<4cg7n>urqWr*}Kp&ct^G94Tm3h8ohU zPJ^?RY97qpS{k&&M7gN8L|N=fD3|P?B1A6f)8OEx@bNDr4{e}kLj|uMhWDk_k>B5h z(R%mi-J{Owed3Z%5vNTaP~tnXLHbeU%k0)WY2%bxqXmH|8ezes0&=>zOF%zcs#mUu zv-JLl&t|OZD230EmWpJU$=D3t!K=JCaL7<9z&s;j;%K*0vQq@kFw+&$uBrpzWT=Qq zDt5t#Eav@yG&nTC-k1@q)tybHdu{DczoYMk`hU=*_GI1Jt7LVmZhDhiAQ&Fe4|!4V z)YO8Vm2d>rL(*_uQx>ms%n?JAS?yi9{pOY=!4%Y@Qn9ymiPqwd0Q>Nmh;Piy2L~Vy zYYO#x1C;_9itf8e_czA-_~FDw-7OD#1*`dLleetuj!xS-7{V_4+H0Ql7o>4u)|3k7 zGcL!P4clA@%0u3wQ{D8P&WnyQv`7|9OlbRdgTm3z=1h9_`|ls|FMJ$aU9&pI?HtcR z=O*gN9yhy9tAzAyyXs!zE_(kD?SkF zLw=%K$%Kq1ZeASXWl7;ss|s&vRFYeHX;&g%7f0P1MQcWxyG z)W0REV7oKzzN&%csfhBGcbiYaB>7z_Wm{zK%S5v;xM`z)J<23CK61OIRg85@h_B`! zp5nf*_Xa75vSOieTPDx3>N`|tpK2^X9G_NOyVdg#8FsfWHTlzv498NFGuL_3k9oM= z$fdn@C?1HDZ+;1A`u+CDU5PJv{qi15%0ITSoDC{UUftNzJX;{#Snw$s4ym}S(g^yaY{242kOoCX` zYX*?9;(bB+H9d?tAY#WYJh^-U&zleAoIV>9Y&i-MtK?3$`%6&(Z1ytmod71A!m4Ty zi=N6jGI&I*P)pnDm#fDqOA`|)E$P*V`j@|vRF2A_y>|k82g}@x+D(SY zbkC!WHjbUh(ZJy{@W}K98kazT3F&a#?km-)z>HztPi9+}%sr5BJ_Ng*86gMZi9TyN z&CR{#v3ReXtf6{$2sH^dnT^sMC&_D+$w?ktU2;npX+-ENwrMRwV}my(R9=XSm1OWF`a11Qi-20FW-uh>KKa(=uB3f{VXng zmr1iv?(A=9EUSZz{tD!rO4>86B|#-+KG7EKueuuzWQ0@o6YoYh1=)YpW}7EMm7P=y zr;6{T29c6%TMDYsKuqyJ=hIcMIUZL&J{PL?n7CJpkO2^MwNiH-h2-F2u^{#&b^6S4 zhn4x0`Km9%=XzZN7%1~&8-FcxA1ipGSf3$)KB|CKGvo{t0aX}aV~Kp|nQUB8{i^Lu zjwcJ_I+IgUR1~LU7cW}dY#&hRE|O;vFH}2g4t#qf&jskr>iNYtkTec-K>q_|8vGJM zvBDp@zR&DV@1} z@K2im0O+6Wg&Yi({vel+X-{R^)4Hg%iz;dx8R8{KE1`AHq&Wz;FZ6yKy+8F|ezzei z=WQUJZ>T!)$q)iW*4+m|Y#nJ2k2A?^fe_KhTBgP2t?Xfi&%Wc)-1AtB_{CUnqW z+Toce)Z1{f$eSn46`##S1{haiUwp0^W6I#%3vR1b26$Ky{JYgbFZD;x=qHzeT@a1$ z`HRN0V-O&TVu?{@T5wxW1EhixKMA{djih@209XI754;cv5x229Gx5tWReAL;`a2YA{R2I0)VQjg@2)HY`75O6B|X<715+G zI05%>MpnfmN0H`u$Bu)AX&+>EJBVBRO@nGs`L;8tS!GZQ{lk~Omk9Qg=Y`>ec(*^Y(K-!te&yYDwojDJ({eTUK}zqLQ6!Q3x# zJQJ!z$GoQhR{E9Ubi)uFksC~_yP&&ZYk`9~Y(ma--f>58vPRc7YcU?mob^Qy1{i5^ z6GxGAzZj9ixvy5^X&`6!M4{)F6G)N5d9<$F)74!173tJ+I;LHpoH+W{f|thm>=Xvl zCqkrt=%M;#>w7yBWhGwK_|IJYErup=)@~NA@At%j7R_ykvo=xMER0_Uc}UpgS{52V zxz=-;7o*o3Z~ZF3nAO#WZ#s7c?3`E;1-;2-Sc#vl#cHJf%GTrmY-o zpnlYlI0JZ(nzcMur7F~`ew}+x7vQ1rc0`-qvKn|$K#20J=5hc>>k*GV9$i%a5WlTr z8FVQ9hw2mc29-U&P-*V&Z=jf>DkUn?wm2e`zp4GTy&gS`@PC4s7HxT zMo^kGZce8-YFYeyrh_dL>n5{d@{ow%LwxIa^i7vz%8E=~nz8#mpQfJr@N^|CJX(T8WfF|ld@e-m01KK`Xu}a~#n>4?#n>o1&hk}OB?5RORHclt8azJv zr{l_C9GG?E)qw+Z3rCN*g54Nr)U;lWRZLPY2jaG&iyQAT3JL@l!}Fe|)2t$L*y2^+ zaOpp&v{p&``|xb`^$1t}MF*A_PtT0DzbB*)dgH={k=k`x>Bt1`064kqd&k%7;3U1* z$HKTmqO^?wc$X^hutY^SX4uq1-016b1MGt-Q@bpfxmgnO;C;bjz4ka@_v=ZDpaW}9 z>P7bE@WKm?r(w}*$xNtyVKgD`9k-H{?j8-qLy)zW^@%TkHb9w2|G_O=>WPEI!j5tM zuO7x23|ag}ZT2Pgb!@$A;^!hu-y@?66Mzm;mqNseVPnZ)naTGHM&GUB9G};g9-~XT zgy+rLWDjq3i3)gIWY1rzO46{#=-Q#I{;tV=rL|O*N=8k3rukJR-IGjs;Dc`@Z1!~y zP9royq(HK-js{#~B$_ZBgDHlLiAU?ya>X%aG{ApK2T4Z+=_mz?m3VAWIo{vN5lPnN zyN3GaQfuA9Ri`&jSy4*ceAe|O=PXFrQuo8dz#z5lCCd7l`X!5PZF(nxs>{PIT9_wy zvp)07RoX@aAiq^-=oP&L8)tQ1f(o&a+ccHq**xgf_@_28vB6*?R!F~bKQ@+xWk^dq zsJv(}QxWtk>9pGyuIVcKcHYQByu*ytH;{@jO1siwI>h^yG9aN82r$gW_Mkr7R|jT! zR7xKDWE z7z=JZmjCD+QRdQB4v%ucIp(PI9&^`KUglp@tW#y2B^B1nbxCH@w=8qAH4J%!%jri#p6M8WPF@q)xo6}!mS zz?I;&X^nax;!<&qk4He(9SBv$*uLGLA)>~7+Ohim5tx@5G&xSN`H}e@%FJQbludt| zgK#jLdpWgq(AtS#8F)K#tGt06W_4_5<#n@Jqn8^s+9yeT7IrrzLx$G|juGsmU4tS- zFEIsS2du6aMpFx5#wVVrklobVze3>dp2@J}dds^uh|O3ivkujUKo^6G+R@OAi2qY$ z%MVio8RR`}^dRq?W2SKpTiAvp{0~?$3`9_Yv^$PL|IKRp#vGW)_L`u=U5$PcoHbh@ zV{9%yhf&Kf>A&>N9Bt*HD|*F;yyI6ESb4i*O(+PUwnjgjX}05@v-|O+vavLJB$t#o zs2N285ZV0%vKy;v`30=Z0PVjx@vxmk$RM3`#3SWVCv>P3oa;wxXKdRoe(_>N+Ekv_ z@OLIO4#QC(IXzMiGbi2rTZ*AK{VfG@HR z1 zFl}(-7FW46F4GZn=d{Y%yh%YMH!RNTRb36zspcu{JT$yM{nV8N*4HFiiuzuQ{3^R` ze4f;yXx~H%jjM?%olm4S42*Ex z{dX2~#QD|Yjw(cxYjty+E?C2I?cygOW9eHTPqM=z?Sobg>9B`Ih>+!+Al}MxK~(x9 zOe*wmy4lyMF#x!SA}yXln;1vpGQir{pQ-0+^HjHwD*89ad2%@v_D4k`cm5bz6ap$~ zeJ?4KDb1h)QuhBvvi6n-UO#p(Q=_ENLh;cZ8}Y}EDbi|`wQlS}G6F_$|g zJ!JyN;2fp8%A&4B@vL@sawR1*z&kI*2S(~po-qR;Bn>!8MruN7+fJ>s- z8Ar&-Wjy&8c~hck=8D;-yBQ<#lg(x%;E(H@MI@N;J`M8Qh5bE`f!dn*QFI;y& z&{0&MN(oj4vgH$vvZCg(WaHkOkJ68wd;c zf)fQQ<4N_U7HN5b1Sf#_ckF-PX-L03Z{#(xyZ|7`Mw$;h*012z+yi%Z~ zbZ&6|OcrNP63-IH@rP%aI0Jq618T&k5Vv-;=U8TMG&fo0l9uan1ZPZQsl3{-+KB$xZcoMDF9) zK@Q?~l~|(awVnPwmU6#SE|f#Pg-mfL=@Fu3BBq9|5*i38G$zJ1+xX0!nj3XA6%Q-7 z#aA83RM^P=Tnt7XLtC^F*ja$9Kj2RbS70%dOVS{1wyv7f;~NET)@b+5K(X@v#a1I#@k5t%EyG#Fl54@Fd;0s}Fav?K`p&jEJ--qKgZ=9X`aiI2IOsJv$J zqBZ^Qq?EjD?Nvix6;m379jbjRY8AyrT4chqO)UNnGulwD??; z>egGEEglVA{84Cyr#TRPU2#-ikJq2qBGZqCuo!BC&cFeA2C~TvKpe#0n#8d(sP7NjLzMU z@lnM(EIM65gi`cX0g52K(dgUB~rpcDz1La3G$gksRVGW|xQf>Z;a| z(iUOE8f!@8>Tp%F_*cok?)hat!Rcc%8SjwOmw--bz&H{8#Oy76{g zfUrTZr|Q&NLO${GJtK(<*++ZFBB|(|I@0`y)oUk>)vI>0GyX}wrG;=SIJN*18<^i0 z5B0M$#PFvM_wWvRaZq1-O03YBnL=|u9ObuSEg9H{mB+LF4Cl1HO`uv5<>1?zJLjoClHK&u^v z7~^b-7WL=uofbF(OkpHsuQmqRwmSqMYqoJX-f^7&8?jV;0`9R$R#GiDN6Wye)RB}Kg~+e zU^=@KOwW<`8{G1WCA3aEvX04VGE=}jEmO(s+3DFvTC+mZU#lZ^BNre%AFkR)GDFw? zDG+^6A8_TG0`*2FPj3e)A7|%G4V_F6?gYC8EQXTaD15hCC7tBc=MXDUEctRNQ;dKF1LgcJQOO>!NpsVR?2E2 z)`|IfbxRc+=r8KHdL9-pCW#zB-#+S|oSjY&y((!-M_Wb24ThRpEh2VJP|Y zNcW)wbR|g*#VJ!E0fZ&Xy@}3D4;F(8v0U9(LWp2dwEM9XuRfpnC#JOPLZa{Fx{6a@ z!_s|*;F9chM-s=gInPHnH)2ZISZ5v(G9WK zVyz;~CQ0e&+i;4rP5hq04M(wRotOV2`|!3>SOyq!64%MipuSf7ARqXPOkiNtm?-^M z9^38?sl{9`zE^aHnn=GVt429=)T5EXE>BW>eA%ziyn3+X2(dW-nPHqDBn0L2Yb! z!4s9kiJ9lH+2+}5Gnbt|$F-$u$IY&h;}xIC2(<^)yJFk0_WVL@M=vfjcQ&39R-tyB z*4dF$fWuawUKe$l+Bm2_>Ra&Q(LK2tOak8vBYhMZT^On2i*93yx+hr2#*b=(fNrxW zL1B;>gi22yl)Ir@!Y|)bJ^w_<3r)LwnUqT$_v<&bjz#T~B9GwtW80!EoYpVfxF7 z;@k2$pM&~~w3kpR!(B-~Kx8@Vy-*)~&())K@@}1ckq`Zp^390D?e656htH?HX+Q`)(={i@X^;t7}!e}Ni1{bK;(QF&kcX>hK3p^5HLUNma zfbPpD@&qgH#85FtRD#<_M9Ph};ySDYvfBERs+^fM+@h)%-23itM(97UjC;QQA_bn) z1E$iN70S2Dp+Lt{ml9hh(V1x3#n=0Q`X*F$21N>0_z4~OOSFPYtlrEV8~;;ZP^HnB z*K_c0$Uv-0i&32WQ90q3N5di5@UF?Sqvnci;|*=}%mmL%kqk8NSwP$~LOvNZEu3CD z;7T;9AhEmePR(Ek$QU7=Kq`O8bfc|1#o?4oynG;L<{8}Q+)8yX5Do2r0He*TyU=V;ACQ??03)~JR+uSf zF4}H?cl;V>gcWk5|*{s#29uS zbi-V$lcdDiWP%9)@|{b9OGr%HWK9;4y=I}3Rw2)`@8h5`g0qcQR@yk3!4pM3)DmEu zr7O)R`gU_KG&kkB%o5I?1n*zJog#&tMm9M314=yZW*~8E$gx%2214?E#1bN2qdX)t zr+i{BhP_e82`Xa*zS`7OgI7Q(V7g(@!U<(w*6w*1r%fCF@W~39-?dP$7@~Fy(^S(} z?yK_!>M1=fOCfq#lXiIJIW34%c&zABeROF8H(qUjTr}#POHoXk2y0O3Q7?>h8Y3huJEOCP>&s)owDOg zH3mSuc~LTk#EV4Udw?v%S;P;nSn~bL^62$U8~VqsD4!POF%|9dGmhm7?*5cjzv>gT zPFA0?j)uHp4(vuoOs)r$-he)HmookWo=+*$_UeqfZZX!y} z8f|LUY(MeD9=K3y>$KidFE>lrNb zjX=K-yqcc&5zl40v*&|(P0wX@c_?iNSasVl$z=LS|9M_>To*VO-g!r;p50K9VpwzA z*r`YN_~3bhFULkTcEYx-xy158CFBrM5ydB$Mq}brKb3sk>)7nG9+4F(&i6q~xmZ$; zF`METE~flLLBq^2CH{^L<==S5&ijCP4O@dE0C))3;i>mW()?+jKwx2aPo8yT(zosq zPK)Pj^O4(HP^u1XyA4%~D4>dJ7D%;E2EQ3(2z}mPQW^CdOU-9%b=Ql3-Z5pKZSO4(Kxl3p_#kH*53EIl^&*oXmxdJ0kIm4F~%tk#%}yL{Hf5qNwTSB)W*(8qYIKb zF~e4*HG<3$_=^d%u5uIL)_@Z$$s|4Xks6vj2+rBkte(GyKVoX2u>DB_mfp`ECOq9$ zF{C%T!1t=}Nls?F#V!QXs1~a#`CvJ<5ce&iN|+5aejw`bK2)sk=&*gPJA#`_736k27(O7fk$z_MOiZ zRU;x$Myr3lvGoPi7Xeh~X84L)=HOSRkW<#?TnsYS=F5v_#P|qO1-aP~;wbp~xej{N zqAMG$6;FzQ7PGIxO;A1+K`N!*Vcm*JLmIVl#^}3^N!TI0D$>sP$Gd599PKA;;g!5% z?c&+c3VDkCVRqP>f0l>Dq)`B^yLVeilQR)~L28+LlT7oV+~#nLH>w^tLtd_XLzsKq zt+epuT7XeJ@n(ZGdsp~uL(rX^N>n&}H=cTijsM{@9;M#TsPrA9SI-B-1a7X0n(Vya zaU@CMd1Wig_6l*~Q(H)=uW6yc;m7azzB<|*uI%y8FGNcL>9kK6;;aPBw6U@EVj>z2 z-${d>otDuj87L@#>6D{HxyAcQzs!#Zv=ccrVdJaAJ#nO#Wn%>d5_z(OX?xD6b4SKK zZ@`^Y)DxD3YJkP*2d^*^-yt%is67(z3|^oW`E&%u`)RgsJCT|&5T&pFTW#!ZYl_kd zZYnK%(5_mv+?>b=EeQfGAGO)(B04Pi9-ag`(RAN;K2vQNI5rm6#%}f&KO&bf=$f1* zx5=yTGPYuYy4Njaygw0NOvGplfQevrjC{2%tzi$gwx8kh8B?d&F|Ph~L%RI>^LgCo!0Dg~p|TYZMfqxwZ3CqYimEctX~ z`5<=0nj<+aP(MU%k+AI&C|;6iI@Ltpv!#TTCZBtefzDwgBaJJuia%agC!L4sD(su~ z9h5SVbt zSu`KE?=oQ=d%BSo;cDTEU@AfSTA+i$*gQh#L-pX8eTb_2m2>Jt^k&1Yj=b@&P@?Of z5WT2+6_0jV9Q0{|Qv@?a286YArG~awFl#f&+?r9fLnSzwuI$sW_j>Y%@`cGD`-{mn zFu|@^Z^cKffC9aU{k83kT#d6Zf%uKbP=05st7DQlE(VHg0)pU$mw`@#3-x7(K? zO*Y4eI7I@lZ2i5Y?)txlX;?#VwYfgzqp8!!_4rrJswgyUsP)%`49iJd|}g=U+M* z_3v}AzQUUw=>eQb>SKy}c^*6GE|47+uBhi?A6x^l{TJ}NZ8%DYsipto&#U%P(`nt% zV@GFzS&AY*yt#n&dcebEHZdV6jo^x+^ZBGXMzw2nPjY9rn(>*3Alyg2+Wf9Q=xc(; zG;kYbRL>h@&4iAs_+RLx5ig?^nZGxP-MITmF?n({UQOJXd9{#bzt=4Hq8v=t=u>@z z(~2g)t@N`(n1`5;YxhVm$`Hb=L%gj|d%lnY+!a=HTww-8+8o1<)tP&+?a5Mz?D){T zgm{TwRD#O3moRQc_W8c8%pdbYq42HV#?^p$C)4H_TYV)c+$?AWi@}_|f!K{^0=$xW z>neu?bpqQ)<^2`XlKu-?G0tNe;XXxMdh=e*h1EL+QTsD44JT80GIrIZW<5+L7q?#; zH|Dj>sFM1vroWn6Tkyz`~zO^_NO2)}*jfAvhwZk%K*vc2R+&Z5jMjr)+LU15?P zuMGjG-+t)hS^aZ)k#E=XD3Jzk?sf!%^#FbJMd*-q*VW@qU*t)jiA4efI^IquKYJX+kgVK zSNI@Sdslhu=Hh)FkUSmYuM5t}Q^d#}#5+;rme7n`Kq1lngea^|f*3~SzBH--#O$-N zc;1zJ{bfo4QKtqtX<_C1Y_{N7GHDyvKYWlI`rmjso4RhQtX^tF!C~a=W>Y!Ub#^sLo6W*!HQh5CiOKe;e3M> z4Jp6`sVkW*X(vN6q5+9Nx#6hQZYE*D3`SSJIFmGZ+oI%;a_1&2#U{1Eh^j2OjKloW z>ySdQD>U>l!ieU-sb)oD%5uW8p_nTm-~D)+SMWiJ8g2}8BoUzaBQiaSjRjU}ZH}55AAQ;h+X#v#Ll*vUH5Pq_buwZ zp2%yF_`i4s~Ilo6TedZc`M^+s#KEl*5KaR*zEoAuy z$;A79$Bp+gE0hDgd1WVBi#`b4viM^d&+4E@F`V!$cA(P<{bQ5J^WYD))&Ppdjqb-Y z!v8H+E9!PkPHztm{fm56_`G`o!qZg`WRVJqDt7!5Rz(WrVxv*LGN=Lju|1C!npI8` zw38@%bdPOj6{zruG#uif5BCDW$+KSP!$81&pAg;BKIN1g$+^@Z%m=T$0FJW)E<|*@ ztC?5{Uu?G6t2x8h& z?f(E**-ib|nt_a&mV?lsiW- zYW72!nK89Cll`6*!LgL8!v*&+6m;1RPR8sN5Aae#888!pF>>oUqpwyL7GKoO^Ceid zK+g8Qx6MnWP4B7Hntq8Uo+-q-m@IB|!T&?b^YH^8PSl76&+FeAre2Km_8=WBiL$nS zaNFwx-22D5s^3mz+Wl>L42E29Pvs)mDGzhjyq6w0ZW+iT z3{)h1z9L4|+=9m|R&oo-u*jOGL_M}|rZuyjwhfQY2YNK)!&GtA`=mk)?>U}JhB|<+ z*c#c#ci-E4!Kdp)p;?7^9C_EF-#ht<9Zo|THe((U;EL5tBAMqp>S8)22NW(qkreg% z)8L+X59xUdK$X8dW^)3NeXxy1x|LI0N z5ty#=k@HqYt$;!%s8a7Cd`$TEkN|26HEASy$vkl7!di?Cy!S0`kU9XZ z!y_L4{Vz6IM{kGQF8LIPvv38CbL)EQE90eL|KasSKF#geGdG`5 zx5~UKInyDo39Ft6@TH_qgP0EkMCP_*u(U#9hPi#_ z1#Zo#Z|MuKKSxRSQ^A@gNkGel7yGQeTgz-iO}w`?|DEc1l0{1xf@#?Czds78Tf4_Z zXO<*8mleBvnO%arn$fINfSTgkEa%w!qpK^!oMd$ofgYY zt56cGV>$YQG;z~O#589*xR%62&3gQg*x~75mQ*urkfNmsA}*h%vsW-r3pUNl+MH{j zP^-ChfM&ZwT9*2#$!_wu`pelH7$ihTeDy{ozKrQ_PjRE5&}t~Q#yto}A>{nhUP{Zm zyTl4(kW(b!I6y6iVbE-+6;TW9>4YW6npm*T~tN5W3b-XGwG+W+cJS;hJ_?Nzs{ zM1>y}UeOXws`4Jc{~}WuU3{K;@^Um8X~`-nZ6pFelmh^xpF6zH8@qDh$;D19TC0?= z)DE8U$O;7a$@Tjt8m{48H-MPDK<0E7HkA(8JF|i|FU0(Js4Gd~mRGU(Dy>-fa4dPX{2#bu#h|8pr+ zu>x{j+ilc{0K@B=GxUC`zj8{hNdA3mLlk5SApL4 z2xuSsp570jIp*3|)sS?dclkok8--cfo_&NMo?!0AF)_mR9xHh{2w&usMfRfgOpdqm zZ4KxuyleMjp7BQh{Q#e=6X7vJ!E3L3FKk32K#!iTe0P@!Y~fj%bc^pkVpxV=zEyUA zHu}yRvU7*L$bMaSKG7_R9x2~6A+qto-pAAu4rwBWiR_LmW8D7-c%|aH4UD+!({`VG zjy=x_UFz&{xat4VO@+YvepOY7r8nNJ=|Xu@rH!ydQ^ivY$MAIQ8}P1owNoNLhQN}8$$Q|Dr$l2;)iTgC@QOCVpwpIrMy+h` z;yY5KO4~N!u1%fVG(m)mo5S@KT78s9whEgTAUu&oeVwjO=UFDU>`B;yWVYYSi`kAR z%XeN|-{mg2cM`Ubo0npH0_F2E*8gPu7Zxj498fY`Rm$C1X023c-`0fn<(oQ>i%cTR zz2D^&Cg(U4K}2HlCxb`EAT1N}+zkL%id*m{X_};ltW)^t(|kh9@V54+f#F+s_yI3A ztnZem`v?*~N}KxLfU9)08%*^dH8Kez#y+q3o#{?NIP6_=a~!3TU&>B0T&r)n_KJtV zroF#p+W&L9sYL@ee!@jw!lm5C?1LmNpJbocwiXhRl&_YA$Y%p1_)tcVglRJsjy`@C4q@=4iT4_f41h_1WYO&C6{@CSc51;larXs+Qm*p~ z$4kvf_(q8FhlP0+HJUzmW;U&?;djM>qKR<~JW3rb`oahgxFU8@GBX0eykaV%buqj_ z?|b3?RI@{%BKB==R`IOh<;f@XU-#U1bDm$3%-H^$8>?A@hQnY&wKenPjbj}KcvvcU z`&k5_fVoHr-{g*2gw_J3;zqB8lE!*BP!Mm97|SrXMWJK?0=wA#sHcqo!j!dW`<1>g zmhX&DXN$gC3NDlImu$ib+i7h_(3{R7nMTJW#ue+r@|+ziLt2Z`*ERVp#d-fYG_Ef; z8ONT}H9}aR&vfUIR_Z6>KSVd{{mHJPT*1?LceR5d z7Vw(MdRF3k(llJ+1I<6w3C_SKlH_6HUAzvhF@M-I>1M@Wo$=gwb-|TFlj%WY0I!5r zhWngU5s#acAlG>l=BAR_K)z@YC?}=!y3``4W{}Ev8B5hHXL1MKWIdagW2>cBHr3fV zC^%nwK4_E!3lwTt{qxS;#oN>#X=V*vwj04`S`3veyGqMn)hGjWR~$aNGL#(ws&dw= zn&;0tq{XPt_?m|O7vY;e6yBDQb)&kp>nTY?@?>I|_J>vSht$|4Z@I1opy9S-G}YYr zg(JBESO~Gu!zcGRm}qnCe*xFbF8A|xINkZ^w4us7$}~l}Ltx9W8UkqO-}q|Tms?sh z7#44_zxmVbNn z)?GSD`j8w)HhxyvP8dIvVGWzE(n~*|#!@R#(~s)xQ!z~wJgmGf-WZ4?UFK71;Pq`1 ze52W+NIUT47e@JkS9!imo3Rf{Cl?-3hzXr{$cW_E+*hgk4zVEsT>AyPtm{{M0j*82 z7d3iIf|XlWCMV8a<~P{_yXUb@0~%7plB4r-R7GFq|yKyfI>UK z^t+O3hlQ%1m*^|W%p9(MKDuW9=0fw)Pd?q60-iely-JIKX(s;|Q+OPKza^IiUcTPR z``>?Yg40T!*Rq>WfZ-g-FD$Okb><)!Lb>U@qXi3>EEle@bRk6l522Q8X>$Bm7F-K} z4hqtzZ1&gl!-wzQ>uVV0wxJ->WUP?|0^v^YmjoH;bKw_q|8`C}e({8^st%452&-oV zgX}Dl#xW9}BR^pM6f$#&Kuj?=pej}Byi_9|?pCuF=NKl4F>!igEZRX?xI#@I>eC~mhN2!Dv(Ur`iBi?aJ}2p zDu`Bd&iWM}c>dCC3rFq$J4_4hyb5t_n5%;JvMwL}kbQ$G*v7Ea$ufJKggLFPsgViz;1zY%7QW8Q1>V%2TXK4CWj?ch6`(XugqN(SedNq+*1 zz2us)A$#gppd@5qLZD*0$=gLeqcD75xojG;5NMZxJjicOzXyRgucd`aT}iC+a<&CK zTuCtxaFq*OoI#Jz`+0+zr}@@89E#2B;ui9>27>&ycCnZ8S^ozJ0$dU&D$2P`F!*O~ z|L#*L<^t5jZTb%{=0lIZ)4HtWJwVxj-DwddSKTz=1n}{P_VZ1%n$KEZuXVKCg0Uw3 z>}N_P1|@Q_j?ENILWB`nRJ2T!XS+7WT+fC1s{RZ`9;AaLPz zVNw~_R9*C-DF!Hq-LQ0^KYH;ciOsZBkDG><<4e6`cgXs7a!*D}L{>p%yIzcoKbsZ1 z7+?JeRS0EQvI^~^-?>c;&q~m-aWwB*i{@ztS z|0Ei_hFJj(YgiGU)Ea7i$PX>_nq3yLD~vSZ2nF4+>7Mfm-%>wJ>lOOLzZ<@43B=f2Dk zn}zeK9N?Ss(VYwqjj|!`<5Ja|nams!YZJ*|$-^2f^yC9HHeV1$Rtoj4{tV%{!!o=; zRvs|vz^DTAiwpzg4^x?-^C?Z{1@-q*OoX)VrUi_-bU(EVeAjBq2sBiQ7f`T2yU|5^ zCaWAU?em6yAUW4=dO@Va>_9-8;7`VJCh2U9TPQXfzv%fKWnd~A)=_BFZV$u zhWkcn*YF4_M^tffUBW5jBe#3GHrfTi89Ws3E z6u9!}49FK@xg$j`nmrV{AM(3D3lMQ!nH%vp~J)Mu^Bun-;BOdd&jeqzC6p#zW^MUwUrhQ z2$Z}nXKZ0CGV~*NuuoJFmQ0#x_=`A_eK8k-0BYEmMm z5~&WtJQJL!Cxp+^_I1ahSzta`Niz%U@?daZE(}VAM@2s14RPEG?KlWnkM&EIHm1k0 zfEO8{1~3mN+oPy+h|5@LofT^b>{RouuB`;n6S*whGqMHqKN`P#hHjcp_|9aPm!p@ztZdjyYqUyvX;{5`KeWOXX_5M-Lm;Po6N+1A+x)Qxeh(<#@ zRN^kwIr@fIdYbeNE{S_Chx3T=Jc&<*$-BRjhvUj~Z521}p+~u@!DVNZY<-yAA)%uz z3u$PpS}sY}Z@n9G&oz-dLJ*nl*BdF%Jtg3{^!(+~5Vn_TR>gWYnJ=ea&N6 z@ZTt4*?h|L9+qa39dOv6&wpL^C?{oAX#cY$Ex&(Q*KF@(-`N$O%JO47L4rHxQ2MFp zZ*N6JjL4{(V8*1VvF4S3za9@zDShipa>Fe2eCfd-%LzHkt5-H|KUu1exafYJ2T$Nt zpN;T(8!cc7QiZBUVe%A;aW{c$)BWY*1(==0fgP2v=L9hdTuZ!?)i{70+_NbWAZzyb z+{`w{uFxH4PsxdUgP=7>k?}0fsjljOoGOR8yzK)Ilr#Veol^(Dy%FUprZ!6#tsrtq z{>~|q5$SE&rTyNXfM848EtN#fbIv`KuEpYpqzf#L(hfQ(hVc8L?-9KLmpzQ!4<}yf2zo{fRZ29el;(O$D#C zE|UCGfQQp4f5BFpH{0e#DUpH_WRZ=Haiv*kE&wGt&93s13SIES9Gr`QTM3}gdn5)< zP>yS&QkqBQ)=T9_%G2#c>5AE$HW_CZkqGvyqdr20h9#Cr$cwUtGX+qfMpLr5`-|o2 zi8_&cwg}ee)rp>FF!siFQ6z`-XXPmg-z1$tELTVUt}uVwab$N!%Jwo7n$(n*bM7j} z_;F$JiLpEUnWq=|IFo2qR7sV9k#%K)uiGF2zR05v} zt1bb@q(5IGhc%AA~dt5 zJ$N4|W>8Duym1Mp@Oe9a4aQ|FBLkm2LKOj>GryQGTKS(&<2(pq*Mi`>TP5;OMer_9 zs|qoy6|d1Sh`IU|aGl5Bp;!|-opz4ilG0LRVV^wb%ulR$+cS#k*BFs2wIf3ElN=`;@<}1wgTBxoDFrK%Tr#To(R|=4U(i|+ zoTtw3&3qo^M&O+j_8_4Np8*F5mTn_?n+aX;H%yTn`6#S;Nmy{$J#8-pn7pmOLQna~ zopS~MqMREJ^rvcE0;aJA4ZG7R;rjDR%shPda>FJ91OedsSqs8lzQlNw&w=HU(CW|>wv1V?k`Z5bzi6W-c7?C>TMpOg6{59gr{*J> zkSo^-SXCJAkpXUat79_j@GwzD1!QcbMdrH-Y{+T-4urPc0r2=Qt0sj=PY?M5l!59# z+-|$$HG?S!k8-7#9e+o~wPhe5F#ei1)M?k~>zm!AX--f3QmB?mYE`I%<@~4B|GHp( z{6*qp{8`jlz93#%L)Rh?lc%cb05Ql|%sGZ4TA2%uwE;nGY6?wNq6J$XG+kvS@LIIp zD^|6?ahzA9mGT}Jc2349&uC#1_l;_?34&d#RbglLAQ@Jax1G58qSMtv@ja~HF6Uz- ziXo%29LDNXgQ3gAfZV)7gn_*x(8?is;eP-SRT%~^1Nv%$zRG#}rZ`J#VM?zSLR)1f zxT*|UQ+K*UdIV|cbDo@MezLY!c?lS)hoHgei?PpJ7OBlO*%Idhq9h=wM zJ|RZgC&KI8Sz9m5UdbXXV$-+zFI(sllNVe|`hG=k>$VTuz_;!3(-}tB@~^&U4`xT& zTmCcC4s`|+elZ`MKfWqlSKRVp0;sR1$Gr;SjKSyNpu=zwte@ip{aIonJ)*(JlMGOA z4+Z==9!gEg^pObPcQG~aQ&)*`h>9Y54e0{VZuXLn{N2yeH-*e<3a8V=6Ocgt-)pGU z_~2}}2(}ChG{+F}=D%fZxvx;QUNMo>LrlggF4gPH*Uqn}z`Sk6`j0hC-L|BS z^V9|68vnLlmT8;K!Z~wC4ri$a<%-6*V6~W8ulrcUlXtiYS@+)a{Kn4>E{7j$S}8s` z!LcmWUd>?VuHibw%@0GE z6$6GwIu?Uas!Xqq#iYaTlc~2%(=Sl8Ml;tt4l<=!<2N7KRq06N)xc$7kd379>Nvx| zIvu;cfr&FPXj~#-82nj+5thlaSRZU>J2}(sCpCggSF?064ZW6<&#Gcgr{K9e#yk z^pQUe-JR|6P@fh}GXJS)omU1wkWE%`P;hVdH51UDNmAml=O9p4kphvwLC<R^2`ADEQK-5LYkB3zu#t=pDb0LbM-ik;1f*1b~2`X4!8kI zGo~`HVgP|#HtC~K_&po{?Iv*3geY7f@O^5HhN=b8$0G@*6EjXr>7ABlXe{)-`qfzc zV&E{m9UGRtCujnh7r-V?_`J&HXJ5shKUL6u6tK{9kP?Judn!?-yi*0>k6wLqv!`rW z4rp&;Hu3^eiCqBRAi7lg|5Rzi+Q6zE&D02AB3~qqk)bc0njSvnQCb5@WnVU{QoYrr zw;lLqBAM+L#Vya{Ktj8rPVC|dnE$6+6U=Nh{vR189}cs;47R@?>Mw?}ma4pVA71qM z_4jOeaDRbf+$3boOLvh?O{c%XSc>hZd7ytm8f- zKh(}DCs9hj~^_n4dz+OsY4N1xP)i(?rcMUFEzgyJdd%14-3&34hq-pzi8Y zjy?Ku9V;0M0tRI#6N2lZr)=@fn3V&OK_jR^OCDg0#B8{kn zV4XfL6Gm8^=k(B|q>qd6Sy;fsE%*LFLVJ=^*!h?LQsw6mLSSVb>(5EPE zSRGfr!DimS7}4M1?)D{T4au&AzQQ2so`eHFyI@w%B$ki6XrCBbnM!n zS;IbOv*S$(R7V;aK4t&M4fE277M< zqe}jB2(@SANHpWW%^Jn?)*d{fr*Fq@}?8MO>voh>Rv zxp8MSPe_s25LsnFJ!SdHUikm7-r&gK+_y$0EHRt@e;MGmST<(zMVDBQ`Tr)7MPRPvm(o7|63TfaQ|*C2SZ_} zslWSYJ7R{(!c{7HlaH%5Mp(Sd^xrNvexAu&(EGSc^gvv~LQ#*jA4%xu`7U$;7kwC? zI=!-eXt)_TqLWuO=7oIjy!g{5Al&Q1XolmL^qqe4vj1)P9=4W++ZL1c%wm+ckRLyN z)zMy1wu#rr^&~!R0uIOxyQ`;{)Lyx2UxZs=q-pPLBOAA0tp`?z;8c_AEh^@nYHHk!uoi zd;+=2BT}iMRT=J&c;E{38~+2SJNPBrF(X^9cccpq#ZMv6w_G=FuA(*Kp4}CjZ)&;( zAzfB_)6RE%?AjoRVs9&-8OJMiJp@rN{1NYLBNq~%PBq(CxvO7b4?)0|)Gv&Fyzny7 ztsNfnJHSlImL3nOUggDG#`~Z)TcP()$_({&3wv?%fOdyrp?vYz-11&wgov&|Q0(b`eVjLe)Ir?<3L1<*5DH5& za6YKjPT^Sih;GWyI>3iUtfYM`td{s?&rTfHp^88IcQTozotHJFi2i)ivUuk#J{% z@BwpU^K*;3)Vm(h*g(0g@;02Vm2V(y)zkT->YJB=>aD)LAP z|CH4c)SihPmI0=y2ieuDB|_|yrnl$xE{1rqyVPe+y{f!;j$yo`&-a6A?1E5ZmZ0ca zZtX3#W^oh|Yw`;hCr8b@#eW?ppEit@XzIm}6P3UYgIY$ndH%BogclH<^q_90Yq`6< z3T%aFeOaYv26`7?ZOIlsfwS2(=*yuhZn{a{+aER5NqPECj){SJ&`_MRkjW}i2bcCA z*1*B{4VjzstbaXQPgQ2}kER^Uz>3XiCeqc;*kLy$)ViO-;hclns)izq{72P&)$0z>V{1qemk;Vke~{ zxilem(7ylPU4qY_J~v(lTTyd@hHedC1HJLel6wfsF=l=i;^d91WMN&CeB0Z*q@GkY z&z3MaRgjT+x+bA;EWyGZ@`kmfJI#GfaXfEFk+7#XLkd`_m&+{TEh1(I5sV)D$mjMV z%;;}7KCd77y9QD>o&<~#4u0FFc7W~|U8R$CB+X4) z4)YrY!?Iu%3n?c*$yXY0`#AH%tjdAU?Gx%WcF6-4r)uMWcTj9vImK1 zJ5Bcl8zvbCM-X+JNMN>>i|jmYlHU`MQq3dLYu1YTC%VBh@ekOo$rT285NT*%1p2oQ zK@);irL?BnhHQGN8|6#!Pz_3|dXJte@xNbuLXqo!rx8@=O*-IzWr$=Cp7+qkvMYro zjYuNyGnlE&Fcn<1B?2^X7{_+|Ol&>e+1e~5G5Eb>vb1k457=lbUoceJu26X(2U@fa z7t$aKmIxuA-CfF85&X<`Lz~HjITld)JMelO4#UjeBtqL|si=F&G2j7s=i2e%QTM9g zvn1y8S!!gG%t*$pU;94)ont9>?h==p*}vnGD9vitA;stJ*> z($u}q!vs$CanqT+3#WYxXv`JJ!KLZincG#)%EgCM+>K4|u0`UrPo7RYEs;^U+fnaz z+ZF!@Si)_OUnf0&Y%cO=KgtChOv$T&lmT^ST|@+~&j{z;V^*N1k`lv?TV|2$wFYj5 zIGN-P-Z>s!Q=uv}CI8hI%h_=?yIdD|124zF`zFUZ2{|h;seL#H;eP@UEmZMo?SKKW z>X0(cX_K_bXJCyvy~kr{?y#Qval;U(AXYJtdByF20Jh;Lmy%F)J~~`cmrWo2KLA$$ zB}QQTdF*|@%Kn3{+s9^AR~0=+0o~aS#Uh2g(wV3xE)V|FKSfnMM$Z!ZlN_XuHNIgd zZzBp_N!pUCbuu{nTKil>*{g<1#F}UL#G^NzoH)9TM9+OZhgg;a?14kUR(_W$WAl5x zv+tO&3BzZRO{CO9-PU7RPN~=&06{%ZYk$lCgX=TsQ%t0JwLK46yI^R^x;^$k#ZS)) zbxO0?gR$v0P0wqK*TE?)N&TZS=+~#uuzac!KbW8)s&`~ z3l1Ml>f@DFLHM#=4?1Mk+>dOSLO~esN@$=aYOYRy5ihzjU4e3%wwix=;Nm_4VOpkm z`|CPZ+z;q6>*729LRx>3mUV2W+vU?qwT9U&hMwj}DakSCuHZ{!{v+S&Zc4nCn)k*+ zK_!wSCEfGtqZ@k1-jv_mrxRx)gtzZwPcf61=YX6S%pq&OPs&f=+)WwSv8AB^;TNBi zB#4a(F$vNn-9T`_oCdd)xT@l{CF7k^Chpt3{DQS3uJR5HmM4DpP#U|*JshH40d)P) zL|K+<)_1;mZi=Gd;0gjxb|N+c-*NBy+pU*gcz^B*KVB}51A=!Oc}g|YdD119h7dFR zXeufbU=FcdSh3%(@4en67J~&p4y`rFZKY*QqWB%?oL>6ipI$trk`I-k(C;f%)oN^>C%r0B5UrWj#f`cG81QAb$N$@4T?d(B~e&txZt7ZHo^DL04VKlV>ImwRF%1Md1 zq+jdAg|NBD0Lg)Rj027C<fbB8qR&*)(LhH7@SRinPZuN3{K^4o%u3MJV zw4D~7-0e>3QoxGRi?Q)u0#VP=N@0;C`-Wt4jNm}_URO>%BUq3wm-IhCQK`7dY<+~| zo{|_PA)PEN{I0524DVtC}fnu{kNqy&sVo?dhQN&Ym`F0nL;eeTIn; z+XWIZ^&m**{ZoJZ?8GXmkY4~WRA2b7F7kfdZ~#ev@E2tCV-p@qXv&5a)wbwj z7LYUVc#tVzDgNwCdkvo?Tf<XDJTu)xrv5-EL0rgiH0dJ*UtI)+Gql|3VU!l`E>IB?s+4DHxNeiQh4_ zRMC`>J8is}8_BX1qL`)5p?uihTGG!Oy}PXT&2Ta^i!mw%m2CL>EDavXmaQt!;HHQs z894D($18t2OX7TPe{yIi=n#AiGt-t7M}P7VnfyAKm*z;bjMb3@e+9U5O9gOdre1%> zRBkj(y)kH;=I8o5I+(`vglgYfs>;N>?-<88(XG0fVTOB;9ecDbuZl4H8O}TntATj& z604%BmSH!O(m`ogwyI0)qwX{=N@-qnL_W^d-8hFLAVgT_sxSeUZlx5 zPel{2x)g@MU}rM9A50VwV>0z7q{S{;FabTVA_X651tudEc9KuXraiEbZ->q%K!=(@ zsilXPo&`nfwe{7QBFqZ18YC_3keKMsc~k{HVTurk7EA#9*^JTVlA87InelanJdu2Jk^ zb$^?0PWRV1A(spMS=D~e)h^2QJjO|Xemm5MacQR4oo2nLPSW-d+LO;yw2L%+w`*PE zp^YxC(a4m6Xzy;*?=w{sX3Mcg$eX*z5I8MtnOLh+0H3#F`s}k*d)H%Z)W-z=8fR4S zkzJ@!H}5+AU~~Q*ZLWU! zci-VC7n=HZ(2)}xtH&qAPQBnK>@6u)k@#RB+Ccc_$(4GALl+5{j01LTW`&vg7J4>B zT-=O!+b=q{24eKKB3^=-8|J9v3XWtL)}II=h_s2S@lThjU?n9!VFBjoA3(9dC#Yh& zEI_Qr8t^cnU^WajhseOvwNzR=2QG7yCBsoQHQY`>yQ6DLL*S5`FZruZjM^U)GLc4n z@MU-#+1yq-6zahcieWAGHW$l-U5f}2_Vqp;>F z$jFzem0%PuZ)bbcdRB6mt(vPh=2syIeK#QQt+u_zrV?xz-$+KD+m#xRGsI z%K=*Gb~&BAK>rMHYQjGVa4_Czr#XDpAwrTalfkzwR|EAyUn(e z6TAxQ9#jc(PjMnGmZx(s|I90Fu?NPnojjcl=;m`EY{y5}RSz`4acrM2smpJQKEW48 zetwtqywhu9L!!~g?6^v4R!90QKWJ8!^rPXgv4ZjdJ;e?3P}b+ktEgrDOrdrI4UgfZ zHqp+kbYQ=&WI&2b5 zMpB++BPoge%Bdgf!lkTnmD5dbLY^8_t`V}QLknbu*e7S1fZ5L0RXeb6vDo)?3ey5(1dPYeBLRiGEE#{CZ< zXnQ0P@=3+5u*H=XCIk?@dIy^?mPk8Zq7tXnSm?w7od_*zpDDIv~o*nPQYOu;?roEjeBUqIIwRedn^6;%WYGg$U z_%^BQaY~k)mi>XMxmPg_h4U1YSm%ySaG5Z|Ux5YgrZDQuYX_>&scRwK?~-hCf~gh@ z=PlWjRR-@y-YtBmA{3_pS}MXPc`-ugrObT@uHOxG^9=uW$aPsnVM@ZA_sE3R!IiV~ zmwMxgTD6^v(mIdWgqt9|DDyJ@NdBvhVG?^eTqM`h0yOcdR zaYs$<%|oeb2{S6j!{s0G^*yJ;raB%>TVp877Q7~|`mylp zc)330LSQ9?|Bs@x4r}Uv-}sts4A^MNZFET^AhC@BBONIqF}e&uRK(iG=o%>?;^p=|9#ZnObi(`y?r7 z1$8&N60dW1!~lP~LUHK3<;LqI&bcGyzFUp{P2x%1qA`HrR5F{AWc!PyY9EN>C>n)o z>nF*-f)AuMzNwtT8g`Yi(af=f*RP97?6yjCC~wb*+<}5JXPvy>2^zE&%3Jl=3}U!Kcz#*O`X%c>>IfkM=pr7kgGuBdPENVuJrBb`h*> z+t4b7W1`u&aA1MyakPi{>oP3J{(%x{Ew!MG=I!|$Nf~q~V8?tx*0}fe_45LxCLZU^ z6zU_-ScVjRUl;u*`gcOP2j``@rzCXqQIrw-yFjS5{rn_vg00@1)c093q6OqBAgZn* zm7f>W3y(eyvBzh8(1K+6hmm_8PER zg&NPwD&F2~XisDNKSc{OiNPW#>C+dHpQ64dCj{jNM+Bxl_jV<%F8j>QCc)x8e0;i@den&JdC z@}9PEABCPJo{G@wzEb@$xmqYME%FGkL3GlG^H|odC6iw(O_i9*ekEoN*M1Ak7&9@- zsPHtu)nN{wZ*YY?>T39a-Z^rhnhHx^C#YVAnB7>RwZAlE@=HEL{SSco;6l%i;>)#x z?kz?RzKc2ge5WKQFO48L^+R;61aw`Ahv7f|+`e!&BX3Xaj+4Fs#;zztuv;>xn0nNw zNVmLLsoFStzSU3IeZ*J_z~ZxC4vjT_eLu)O!glhfivsrZ?{0q)lPj*f)jy@i4rTyb zbJRkCZDHadI0BlKCX?ni zvWfufuOev}wsMe5!-}C9h6DKp)o>W|oirjQ z|C-(s@57f)tQT{lup>7IK)}B!};WX?znqi!aKclGHmYEWd9p_p7e^7C)VM; zg?53q&I)ZV$fVgMJJ%dAWHjOf=I)UO)jU84?%C}8av-^e)xyUf|8QP9FGAEx>Fs|a ztQE9FG$|GQr?gyDat8n07Z*5sHDtzG2eRh+*)BDnU0j@V{&?}QO&YUJUl$vwr`kYf z!zi(85`To;1#th$+ot^;>K9`0*TDjltaDrRVbe>{j{{uHDAWqOi3;;FC>Y_qH#ogz zf1`v?8O-{+pl#lG-+iFh2A4dt&+ja3{}5B@*=FJ{#gI$3JBQ^eR923eSZW7za~SeRz&GIJ8 z%~J7{u~^wOcUwEf8hp{JdGCCWX@;0t?2?mxD|ap=25-~87kDndA~!mB$)UN-=b6?O z3Gnxml;&8EufP+5db?;R7NhBIxTsUggl7AC;yicq;!{je`ljEh;m+rd_SM$%0Fx{a zjVQfiKlYIhF-Kav?yJT=uHI5Kn6v?oy7V?69%t8NWT;rn%$Tjzd5PkfVGbc<{ilCr z-_E%sXC9xtHq7z|y_Vb-#<%^~u^LHvB7EYOija|d<%=yTdvp2JOcVL4+pIlff%2Gd zo0m}n%m`)W!fj-b#<|U>_3@ereKGo$;Dp@fIOnww@yY;>mgB@ z6V!VMB_U(Wm#+Y|;PP-do~Izg&##<%QK&|8aWOWb%*=&LN>9CCfHM3=T&rw)87%AQ zJ!`S@C$=`8hDc7%f(W5y6sPH&O45*=!=ma*PqltJRk>2)q{BvJ86ZpYmX&=if%L>? zDThzT!=31lUrMt6MeXVdYpy!rl}b~Vr+hAv^1N;!52Aadw#hEMcS;}bOn`0c2bN+) zM81%7(oMs`bb?RctU>5@NPtFTv5iL}$9TW>?u$dL5tg|>)z30!oR4SF7vY0gRt^Q? zKtg!Z>$@=~MsR?5;!4`N2V7$Aa2fH8)mxW4qY_`+1k)f9E|JZ}-2sGXRi7>#A#$(G zn(vDh@v=QCz$M=YFBpJI_Yfh+~r;=iOiK0YcWrDJMPrgS= zGK#C?gY*c>M2JrZsC%yTN~FGaa}S#Q_KP+QHhKS^86WR3xuVQ0L1n@M8Wz)-buvh)L;pqhuC#me>$UlUS`7ZOlb3Mp&zl&vu4~l}vBHnRzQfWr)>dD+ zMG5(4Ls9vK1eUV@A>1eIe3@dAi`JnGYznekp$dlJsED(|KB(CMjAECaRKbW3%p;Xu z7G)wg#DBKCAKeE$2AimTf|LMK4Wh03FSx{%G|^j{6dwqNYU&5AS4I5>DA0PqW&5IX ze-olEc89x4@y$L}y4D+< zxorl)HaO>ZQy)TfLQT@jggyq(ZEz_-6dY8U0zrALXHxIbL(o7M_GnTEzm?>*dGcg( zEi}hATuteeG$MbMc#-Glo<_RW;#oEdkOPN5C&nyZGxMiLdHt@Y9UmEWtE<8Yo+|2` zdJzj+(WY{Cwo(CBsg-R-{>1+z>{R}(e6($|yZrE@l^)AYmI=WbrTRi;q2+!XC3cJ|jF=kI3g$=?Kf)rpT~z#~`j~^{s$p4&NSlQEg}7 z17hLij?r(H7iA|qX7vLy9@J3uTx~dE&g_2xC@h43bnMMy6Iv7{CO=FyJziU} zmcjCuJpDmS0-%2j&qdNT4EbH(eTAHKP^`j9g~32Bp1xu=*I zksBS#&0k!4B%2AsZl{yZBZcpaP0N0ip>Rb`t;=1N6F}ZBP#B6FV6*=RczshdqE^iz z2K6uI3NG~#J{uz9`O&)Vu2{+N_S&?W9r#xE;kAD;!RzTtc^5~(Hx{8K<4KfzmteL! zLCH%|xz{t|G-5^dc@OvZT7v|nVQs*Xo~;ZXiwoyep7}kfs@A1kG2j2_2q{>H$9&{oA7(AwD zsPjH^N&kUz9Th0zV_TYmX-F+FI4UMD)QUK4vpDDgU`-CkUHPud#o$MzSDN2?cxIV- zeHTtRBwYz;s5%{TfKb+2d;leg%YuDh#9jc)HYDu+Jy-<8VnhM=#VaxvY-#w+Z931c zu4?RRrg(f?cQw_D6%)M*9O9(aIx$YQq|Ljt5Mk8Xsl_|nPbJkd$r@>@8o>3Vc9C+s#%|{xnqft9;a&x_3hA4I`cw&EP@{Pl>Y%P= zJffFSvU)rJSlCm7Djrs4Bx+IZVn#EY9Ftbd(;||kPWR~{>l&T=Zc?zxUf=CO(WzlD4vZJPyzzw}gRAqSWB;6= zRc*gaFFVRlbqgfB?Iue$R#dtAzN*FvMiDsMhZlx>>rbY4&XI> zU>pQY2*=x`@_*1%)WBARre>J=9sWD6wn?bF^tKzs5l<#5{6!jvfS?mojDR4x!HGW2 zQ0AQ4t1k~t$dG;a{{f;>xg_TGQ~Uedev+ypKgpyA?ouqrUGVA%CV!wG zR_p3gA0u;ooF94J%`IJ~tnYG1&kv9366b>7D&3#q5~DG-pPaTwZlE z1OWV6ZVHjj$aoAL;uJxpEBcl8!@VY(eqJD`henB8;;vQ>KCfMTsXAO!w#0q?KY#+Z zV^F_8lOcsG^i=DW3w7~dmI%S}J9Drhn(G?E#J<)^isHrX`YW}}$+R41=}tFLf3xt_ zZ_(=w6v(>0auFI}FSpYSAZeJ|ytGAMuR^UT!NK&Izk(=F+?x%1vvwU#(cyNIZgJF{ z`O*4MBT&Q3y&wOArB5o~tQCGTksyS&jwju#Ec!kyN{!Qd9BKIWp<}44?UY7g(xs}B z2>3vyBP43RG^P^_+5?~o*~F`NyULj$;TVNp8=?H8>Y8Hw!^T*ppW&P4AAh61_$~@u zbCj5oU27J9F?wp#;mv$(i+rb(!#$*+F5{f^E&y|Uy+qz?3=aA|0z--TY|^#1`KeM3c_J2lw*b|Whp zto0{R`_GKQEL^oSdwpIiA|^iqk3wqrF5q%h^aL9P<ofi~L=yo_;gX%<|pO0{1}mCw+&C zKdfo|55O#Xbs_E(U$rJSg0)?h5gcdKtN9GXDUrD%d{}c0Dm!y70dBhGA}Uk$*z*i(3lVY#qBzl?8AHHTyWFTf?xC( zh;72_o#!GgliUL%l)ET_|K)3Wwr)hO$zvY!cKYfbD!L&Q&B6JKVgP7Jt5bxBFHB~? z12VlDy%;x0@PLUL)}o@O#IGDYr?iVR@5)&gvSjrM7^r6A3#;V1(UorOC1{Q~fo8$j z2gJLkZn>#!F#0NPzqW#TB%9j+KQ=_yByqS~{UmecfC2#&bkQ$BZ2S-sX0t!Ljy)s5g4+ z0%-9$=%}?1?u)NS$x^B{GQd~%1ItgU1bVm+=T?ZzZ-1nV0*dv0jhAGV0wbK%#^cm7 zbh6#HT+8bs_9oJB%VGgZ=&8Q0&y&cTg&`n84KW%?{Ow)t)inX-{?r9|f&T&YJCaf+ zI~2`?fd3-STYQ(lbjovJWq7^zTQE6@qo*!_w4)d{WT1D{T`t%dE>S`SJ=85R`PFu` z%$i)VOwlpr8Bm3{u^>@Fk=2uokjYu2y^%sIQ;o}k!Y_(`ERN{~AbJ^lyi z^gtdrI=-_|ETyWt<$rB>yhhXIr}vY%3Jj92Lxn>X`g~p`WV=Set#u`?sT0{v8hR?( z!u9!Hnd;Z25(0DFqI%wF* z6JY6J=I`NcwyW!#R>NcnficPAI2W0#!CHrH$j}noM8N;c5hGoD1KJ4^kpu!$bj`_(+X( ztUAK{r(mFvE)u`=CW}FO61VKpA)O!hp{>NdF}gQ;ZTUP53!GuJSn#Dhs=0lLO_0l* zv<2Gtm}O(I*yBkbnGmimK~TWMNrPV`qtv|KUC1KJ{&Sy6FkYG4Z1S;b z+}S+3PS|u{kvLmz*<@3u5Ej@ip%3Ecq~AnwBV`6#Kzml>F}{HFC7|w=)z_`tE{DZc zZPzNlA$Em>0-Ad>$Hd~+>>-0!f${*$#N?FTGphS6R@nC~LDMPj~j9ER@ZOM2BjO_aaE`ZY}jE#QJcs&Q2yH)){zExgcNu? z0$WRCF?RvFTS1`y5B~H3u27C&Cnq9EnSoUW_4Mrc9QQ7ED8A3o&t@NbVL;_M#nnIW zej^u3JPR`YzGS4+td|F-+H$|$1+|h5ta2RnLND9i3cFPxqZ#?*HSwelRuEPi@vcF+ zI}6KBZuQo^Y#sg6`EcQanpxp$M6YwR!Ir`Ir@GCN@v@Q*3MZTU`O3Ta9(pRn(!fIr zi{}>t?=LJ+_Z5Qx#)rea&H$HxG#5Jyw8dLM!(YwR7>f`6)B4!o4+TpCe)SrwhOM6b zQMEc!e|n>);57ySSLqO%D^tD?Pf|C1oSJlTxbU~@Nu{#G#raKTb;?7Z2X&ghQvQ;# z`SG42q9-m%!dqEcVTvybJDAct7-fN*Vo|6Qcy}4M{mCxnkZSt$PU{3GglI1op(;tE zaCFGW;uxxn%)5^+!F!TC42RE(`12hVaVJU3tB9wPo^**h-%m&&-u?Hf!|6B*)kfE> zfY>}npumGL=j1%lAu?2^H?sboE@6Lj&>ubfxO){hl?}S-VNRzHl1N$JpUv~Lz+v!5 zXO))DdZM>ZSd)HKe)yyyUP*27_WIT}#`$mQt$GmT{%~>fqbZm-zrRBazeApz^XIHU zF81Gpt2s_TzOUY1%TIn@EEOmF=mvNk=W5nDPFaz3yqqsg5s&ln7T_>Jh5g4MZlj;yaO>NQArV1bz4Tjg8t^d>KW3EPn)z*ZqtjbKX z;m|A3$J-bQXmw}li1)cFuOVW*Yp3v8T?rbHT25mYhM(Nb1CM?&=6>CNq2)7I)HIZp5n| zR=hVAd{eYMiV}5?y=CXc2h@xj5;>a=5NtkotZgzJh71!w&kxjjXD;9ch3B6_1`aoI zcj-a>0C?JiDaORPl((PHU^b0Do9xmC^AVG5VKl@KYRL6GFNmY$=DJJMe&5pA+?9>7 z^WeL4i?28k#SU})c})BjEk0&dj(z?U>L{VZ?HG`~?LkCCFcrI0k5?1hr%6P$f|>^M{e+_PFw0sdCdra>Vk@kFW|*DNNrkbb#1MJMQXXe z?-&jaCE0b*2g!bac!C$JXkSOvnX9j< zu5D|ijKWvKaW3(V*EaDvpJUvT9c=%)xJ|NF)B4uvSxgzFNC@Tnot`_)(;|b|`uE)e zc?B8C{%|oL3C5{Zq%G}kmB9u^p~^}vD|s!ZXM-t-O6XLoVkk6SxYR|Fix5a0qw#j9FANZQrJ!gX({pTcv1g|i=WQ-qIgXE?_- zRh8L1Mel?PI(;FIRS{b>=4?~>%;?qb|KcZ1h5sP!Z;>@b9aIjpD=tl&Y)Jqf3lX;9 zfv$kyWN80vx+pTOb*aoa21&83Id$e?X}e(6mvxSV6^_fZ8OdY;c_C>k# z>pj;BBf$gYwmw=iZEBbC2O0hY^G@vlyVGqzrDXatu67!ovd3&X`mmYV*!^rL9ma7` z0hYa7rVoVMl*UYUu56uRdW>1G53W^@Hpr0Ea$(-<8FcI;Re=0+SWAphCy$?-?zz(Fw4BzkbgGx)@sq}30I7*}^j;hSBq3&F-j$1I=jDfqRk&}m2_ty ZOvXL5Q11wR)Wp)rj9`b(vrVw)#W_ z)09R_ys(InWRU)P_*eq{?sCK5OAPr5&Lbx1sVgF1nDEQV>Ho>cT76IOa%Z=!4WOKc zclC$)BFa^RPMZJjU#li*4nIkWYoDtWV`MF|x6 u}gKtVD~nscBqEfB$C=sM)H4yO8)LOD-SP6TvDZQm$Av#HNddr271J>+Q$e7=YIk13X zV1kPc9z{2ySuLqgN&Qy8RTs9W4;IRwSG11R$d%apQ)eFc;T@CD;}NP3{BIMi=;FO= z&CcFdz`>EnV?|YUeLce>3zecEIF{RZc~Qd4r=O+ri%8JgFRcDvIafba8E;Lm{6WW> z#$IxCNri!4`9ZJCE*!?!RO*yRMGWYD(mecO*|lS=baKUj4S^3;IZ6gmWH}$3ip`ZU zj6Z~md++|HT=cX*Ew*u8(_WpZr}L=gVhEezzNl8pY4H}+U{8{+ zFU4?WLu4)Rfh~7gXl)m2VmeMGMd6wdZO8| zuS0X^5gkDdQt;m(6xUDPDH<-~kX`v;(aI=d?ur`kQ-(1#0H1k9P=ZdbR2OX~A27xe zl{BX>VcPBvy*{MmE(ES|n>q|7m*4hj`4uo>fql3N8r;zJBlT_DZ#%~dB)L{rkI;x> z_BK*h{l#0IraV+X>|I$vL)IUk{NOt+Qf(^a zOyPCmLWPpY+T=GRej#z3aqgjLt!KPb?@Vk-PI> zD0Yv3{bWB3?&9?{{#V>wptT%sfo=-8*GKM%Dc$)(z2f`mW3__uqvVM=ggJo!N#PwI zW^*0wA={C4lQw@Yz_-%_@0<)I4sjo44KAt{YRTCzHP!DboD@H@Mc!H@d|00a+95yT zz*lKCcP@E<0w*N=SI_1X;1l&yMNEf7<@4a*cglo0CFtfc3>s}2uHEal?eU31@e z`C$ZtspH%Q9NruZJM-hn+e2W*qvH_U?SNqwl)?{G5+Ym_WHYw?Y11T{YZnY$@ z|5}0*q;{f)1QoJ5$4G_(jk-fwjdBGi|Bb4fxx>3&c2z9jZrr^L^QoGxfx0Sv996!! zLn1X8sGf_uuaS3?wvf4E1^TAyfZ2jiU9U0bb8;2j3BvrB0^|TP^&bI>uHQD{wCEqm ztp>%h?c-n7%Q$#Z5MZBbg7=jcTYM+gAiAf>=Ugy2xj2gFN`GQS^$6#_Yw`?+H*HGy zp@y{&XNhQNJq8X$NSGfF1ctq`uXH%JQCx(|$kpa+eP;6D&3>Bv_4JBQTJC{?{jbl- z{3HVis@CzT^mV+dOLlx2Cc)YimSbN;>n!KXK%#EEBmXhHY5`@@N)TimVL`TOsrc;S zrLC>-{{gbyRkEdq<`c0mV%hodo#i%4@(m%vI{MGUhP&TSgc1PsEgA2Qd#W70jH}}e zg?6oba9AMP*HZnShK&-ygIy@(U#QMmhx&z5?!2g*6<1Xa6zQ|gRkiPGbaAsiHag0f zw9@n(G-JVVaqZ%t&9Hn5tQ+bI`oJr~_$m8h%`2fDl8L#3}aT5L>gB} z(%n!r_-VfleD(#znV0p{^{n+zHKazd%kjBBUA2(wl3TE3{T7!k)lz4_=V2|${5!Sg z^po^-EW$56;1>K*CcP-4YAp=l)vrUMYuFa?3s@)29>^X0jYS{izHF7rZ6uupWy=69 zb68WnoC;;{*0V}5IH1knX;VnKU;TBVvf$$%8eXRV8vU`vx=t#HX=xUzhPw_cX!DM{ z+27Ushd?`aH$rc2W-k452)!9&9kJrPuHiWB+6NYb& zHl7@KDwcHOh$cQ9rO`3F?_ZLXX=k)v887N&?$dbp>ZAA=m(!-RqYD_!#mZb(YzlJo z$Di#Htv-hO79SBnHaaac(u-qa-atOXV?n$TtIMKH?TN$#gL@1+WQuthb+KWw`bV$& zf>l3Lf7)jc*{69>Y~cPc!z(fbr|KA=)GF}PR=75?HqXgL@{t0ZP@}2(d-8*o5qa$Pp1~QMp0{C3H7K)I^Ir_& zbe*0}mLd$FEO`5Pnz{&{xuw;WbI3Yi!?sEcr)%e8`v-~!=g}*=L<+MFi@$QdmdNG&FJ|bpw0-y>mb-* z@rqA&KA^5SR~9dQ40)W&*d9R-V`CzSr0;no$=!Qj(#H6GwH(e0?u|9sTxmc-X_s#{ zX&&*bYu6`MEB&q#ivF*yUgZa7QBp?y(86ds1Y{~+u49K?@{sqT2m7SlkK78WFg-^1 zjay2nHTqcQSnNKE4e=GoROAnpuQyrEW+?G4JYy$Rc>L^vxH288s{wwSM}fsfP@#XURftWTvtG%*?PUNL^??*9N!qEIv89>?M?Vqt>t zirgf%7Jg3=#7RQk703Ize6En#BWZ`XFuB2*x@(l&ON!iZ57KVkBVH=)RG@th59ALx z%cIOcQ*~dS8oS!Fw_zh(uUYdq+HK@{kq6G&M7!jUup%jdG3x_W;s1%#aKD{eT_`0^=q{_2#O50RZ72@!ARmC9(>tho>bw<-OKjidI-RSa^v~ddqqs5uU0{N>{Nn~EXIfbb6bE%H5m%P+v8hDMAXi7` zCH>{sMUhWr8^mrvdkq$Kho55e228Vvp9O>)j^^D!v*Fg}6!)fR{MqAEZyJ9(bmTuV zFTHgcg=u5jY~-YEJzR9z!l-DqJWw)VfTBvmn&C72M@UgU)>%|GNCuvr(kV9Btm`7< zipA%J;z?|_5M=Hk0$#;Oue-(Z{INOf}-h&owKPs;^QBxKA-+c}L_= zyPr)Q$1*-taR>|n|*(iGIYpp$`aiUj8&}stiYeke0SzXkq^dn zn9&p$!A+PU01eeU---B@h|!ntvpkLO=VA`lRq;KLIGK`^{{g7GBl6e5_%!*sg>;|a z=amR|JcSBvXQq1I5oC|71r-pgWYyzjw~(3k-B=HJx=w?Q>YG=AuW{S~tBPFo(C>He zGenO|-Za1aa}hMCsjZG-vjT)}*sb-@b?vU8DaXf4-&9c?+gDGZGC=l%xkT!!+8i8^ z0}bV4FiGE#A2%TqTWaZ*W&Q`ImabTs-JK8=a&?V=azhpq{ZTbp!CjW~kHguPU)yDB ztMV%6ZU?Exar#R?{3K&#e33rsFRZfIh=>^-tpCXeK5gp>p6XYVY*Bc3wV z=TKPD!H7Pe-JE=l|AUeI;tV(UPOS;d$yg^kMiqE@dz^fl&*}0^En}LrNhk*_R<%x+ zle&A6#SDyd?C8j3^RZWi7C9Z#n9;EAmU?{)dz>RQLV^e>eIH4NxDct4wN2LRQdD3O zXekQoWsUe|lJ_;@z854Tj)7nh%IXV8%Im8d;D9;U6*4HYS^Z|Y@l=1>-Id2PBsGTT zD=!M_C93~zH5vVH3p{g1Gopj^%=m2T3s{#-q>hvs+D7<%9=-5(E_T4_r!T{Q(z~i!RXtfSR2$dEkKmtXYKa8+V@g3)IjHV!_CE~ zi@0LC%A5D25|>sojJr+cN>|g_{2?adonqAW&g+UsU9DY!mRM;XC2$eCn1I(3O=~w& zR28KA>CXj<255JSnYu~Xso{*7a=(dzj&d%=Qgl`hqF$%!i~$8mFDsS!A~n%H$0un$ zNBXCb94+t6g3~*N=^N42S8qTD+(Tm6@>QMQb{EEYUYaphr`w@k3x(adxCQu1Q2v&- zVr^V(sB*Ur7)o9kst$hSdN0)GgHH4yzwP2bix4_Q{O{T%Yj2n(*$%9}l+u@(A#fSl zH3=NkpCZv%6Uu1o(%2R6E{H%_IN*0;`% zKuk`$_c`-fldO+>(cucR?h>c&z;5q~8P6dC+!4~nsILkbwpvo+-)oDIs=BJrJGA=KL*pD&WGkQQ(w z%fJ;)^haPB!*<4$w;zr7570`I8>~>>eyRhQPSV(#NHJ5+_~(l^1Pc4#unPKdJ6k=) zWxy%9K{u$8C_%n|`-9T?4k~tMCgwwpB9-C1bj3<8z0!Nm_V8UR+qJ{zdbVvYc=E!< zYC}0CpM^%-uNxvlHmiO3Z;%#=>+yfj=-`)UiI2Wmj)2?*21fB zK+-Vg_FD8pif?DO<>~;O!+(R9FVwrn*kJ-X=3ml-JV#!ojA{0?{fR7M;G_hL0T>IJ zJNX$I!2cd#@na&l&s5R?wno%`M>|Z<3nRy#Xe&CUyKYAnE?>DVbm}r) zYbG}s%tLg;DGPfik@La+2qYS~-39Y@q_p+kIrzxd%9JCk zqWD$i2ag>Z^k}uI+k|(cVtEap`*yN9aHj+c#>WDfYwhw0k@okk)l0t3-*9aXDkJGW zc|s2NTT+fDsaBr8m%UW|jTBl`VY3@?ms2SN)S!1}P#Hd%UJp^

NI(O|yl2Psn-5V?1MK{`C+BWxx;p%(7~s%|!)CSXMyrDBB364`D5 z`AKf!g}1%=WCi3FK`rjopQKuT$O#kU5;v@++fzs2NPPY-8{6ou^|Wfu$W7Qk0BVvr z?S`*J3e5$rKM7P`61Vkw`b8-uT z4NO8wS|6Uc|KJ>Ydhrj#_nd#qZIY#LD1c2gSk=wG^&XLR219bJ?Q8b9Ei|^qNtZ2McVo$LX&$ogfg_^L5gWkCj zN+4yT8>MX>T8J zRa0Zn3mgB&765JV-g9qTiNfsVTt}bkK$yrWYka#ch|GZh|WQ2jDpj^!8X9c$E zt|Grum+!;liFCV7Rp-l|<=cxUkDN)i+UH(sVxm~r);9!c2WzeXvQ+@X#DfIe@FyRMvZ$UMrRxfnNQ7bPu zimsTLpk1Pd=BX#qx`2nhn-_{b;yTnvd;G8HbOpVY%U2vWy2rbvfrJ~(e$aT>lo~kf ziWJ8G856g4DDS9Ww3K^TV{iQVcO(!PTIoVn_qoY4#%8K9dPh0xZZOb)Kmym0|`SAhG&JUMd_rH@)M|`6h3Fb+4%r{c(-( zkEu1h%Jm|t8mj%0D>_Tm_zgF$4ShGrZN{e9qJu}o$^Q8=^3+SghK8*!hTJPWQyY0E z64EwkgmLh-*~=uIQ9k};9}CqH)`@w4%X@~M>Q^D7zbXFbeSw{(#86K09YfEOGv#?5 zwjY^w<6Nz&e?1jR98!ADG{BfxKP3AZY!nu6>oaf}abg z{x^ygehvTm*4R?v#jLE{?tMg63Cd2fspDu3aeBpR7JB(C!|oQs(;k}tgB=UMrd*T8 zHsJL_DB?7i9RRHXqBJgu<+;sWN7{UAH0nhY?se2(;d&9TVb#N>3c^BvRsMtTtIpq9N{r(6UNV4ciVql##GN`30rWgkS?Kqw4bVUpRW1aQT2iiE zec%Z^|6v07?Y+2^dO(#e0nKcvCNl7v5bc-04uyk$Wp-{SQCyiUgI2AQHtfQeE+j$p zSz7C@`{gb}XCyWeYC*sh_fLyDiqu;mp0(`~B~=ko z;UbT2x167niaDEcKW!(@NKu;&nejlXNh+;|iPNXUQF(-kVLcGY4P3m1;Ilbm7f@eh z{&&o1fYyq|K`w)N_lLJBJcY~J{nEf2RQo@6TY#@%vbOSob|(yGXW0Y7yFCN=T(ehf z%L7?`d#Mq-6i2yymEIld_1JFs=9IsJ8(SVTtZg|#Rqvt&Tq2v(nR%CB*#oO@RRkFhW0K243DAKL{*r;*XeV>^oqQ#%9DXmlR<&(o&G6zHS*I)2fgg9W z*WJPeI0uQ@9;DEOi z-)R_A6Iy=!(-ik z8K1svd$ve5y}=7@(^6%i-6FX=@x64Ws|lg(L+IEd-*DLKCnS3KD$$hFFxIO9kP3=Q zhYWw9NHB$4|NOkM`=3t}zJtm0x^8?yy+&fPf8Z`JB)=+VOz2FcM4w7JUqDSiDHGT? z$vy zGCv+8Uw#OVPuWm)e$I~1`4k{#%H zay4FIbUEI6`;&9lG)VMEkX>?*j8I;crkW3dqtb#d*_hi8ZPoR4~CMi78m^V)KJDL?L>iWOQ2P8~3Cy~5{8N{^AVLCAk_ zywSaLNsjW><9*Zqj}<$>ecW4yr}KkJWheS|bteaEWkYWG1w$h@*`t>=6xOxGtoi63 zfc#ceGS$m13{fj^eP8s!NS0Q$O`?CqM6BsI-bcQTdZ8twi|HZ zKC%#T=mtd8sX@&}XUwcQKy!AXX=@m_2ydOwlk)1cqLBTjDs0K5%12BGhpk)fMzh-tcs)1?sVn7CrjK%B2m-@J?M&4{DX@K5|f=9&o$@4u6{z))AsD7W~ zzdA(=8r1mSfD~U? zYNP;k8qSMQAqMKur9qvS%SNm4#?sgA6U~=787egTqRZt{2=!DK3MC+u*pcu_f@hU= z`#_;57YHX~qM~~Z1Bd>D4N|VX6KHYLTFrwoF`C;3d)mI>UP45TV=-mV1`p^JMV=vs z=b({@-J5x>Y=iEtjk}t5ElQ>@dV1#LuAlg^R=O&t2 zb4j4YCe`IBzD7i6JoCGsAmm|`)&u3xw1Cay3*HD(C9REz!Uw*aoI1(SoxYAy);Jgj z6oD+|RQiAbV({f*)ADOU_}KxrPyPA2}0BA^OhT_kAQZ_br4Z$sMBHxhiJ~71E{j`}rR}@5kfw z`Mh7R=kq&2z)WwKsm^TM$n;YI;wIWzIyv-2u-@*&?cOnNC0{qH=y1BlAuf1lz~qlM zE=vC%c9ZW?`HMiG=#)_RZ@w+Omht$mx<@RX)9W|$XK`jM{^y8~;I$6~s_F+81YiUB&NTke#@0+p80|(dSAtehyX!w( zjVGUuCT;)z;$v`qhx5!m{OQB}5FkT^O<%*GrmA)!`xqWnu`*}RJW<*(WV9{!PWE7N zK+M6?sXxxahy0BBFhQ+4&dCmUhiy^&rGT$Lj!8)Re}GYznEwb&Vyh#yaUWRTbIN>P zdP_)I1j2rtQN3WVnxU9aU)F!4L zQSoYJJrMO;g3M2AI8GA%y!#b?nGL_n>JE3|O~D#V^V~DB$lK~Snc6ul2b=*kFWR2H zR@OkkAkxT3tUQP7v>u=WtkOGPd5<8&Ld^M? zPK`G1Y}fc%p`uUY2Gq35fannvn(yz#JR5L#Yk0KY9yf~dg0M+cmQt`Dr}dUhamO@E zGC*)i#UR^d76fRI(Ymap44W>j83az<=w)g(f%<>7#{g{H^)KaAQ&d776ddwv`|BzX zG~95D@h6cPBnjq^vk$)^`Rf?OkFui7LhXBmW$U_mg+KWMCSiWpEp@~9W*)HQ7{u*Y z1;~qg8T>$@*wHc$SACg@ab01W=CS_YcBQ;3|0WIeyu=M#FMr`s|Jn1g><*~2W?my^ z%<97+?k}b+c&ttuV$e|ZSE*rp_pwX(9am8h1i&cL3?8+J^&=W*#rIy?U6PaznOH;Q z!GzklHyoDVtRP>ZrKT63ylDNEn6vAKevnx0-ui837{NO;fp>FZ5L3JL@Ts7kmoO0? zpx}KjWtSI5&z%(lV9|_e3dY?$^jj~wc&!Om?Yn0G49InzInZ}YZiMTm6St~f|Mp_I z8fR=`;a5n>@V649$i5sSPcwZTT9iC2fRa}5zqzX29%&1r8J>ypIkIeTP+_qBSia$h zQ&0w5-1^^y3mcj-o3F2AJu~^|qa>(zC>nBUN3zHCqVMm^g9c{($^J&`5>fM?0c06! zp?twI34wrlw%5r<5J)Aax0n>vx%l|;QArG-E21unX&|ti-5GZQwTdMvAQZB2J9I}1 zyTJ72gS!~_bRnTE$C&GGmu$4easz1iQqOEoe-fFo%BuON5XOd$ps%&18#3PDi+Jrr zrOw43_Qb_bl_xezleb_=8exM$)J7mogvutH2mUkCk;x^YprViN#6hC7JM; zs|wZ5_a%QfUvPZD7@~u?FPoR@CILXd%NKq>q19UqnPzM8Yc+MiaX;bkZu`;dp#A92 zgzK*>T5OH_OWLLe-%mxOs%}M#PGRDNR0LzI?S6wOAS+*4z$NBE&dXVv@LG>T{n%50 z!V`la=0nJ>s(aw<^rzml)&O(2H5TWKMIhXXStq%U>qkF+*)EzdXKw1XkZNEVSF0^P zo2vp1Qx3P{wKa)C6B5!$9BCUi0JGlYBZf*gGWo}6sZMqQs zs7n9c%X4%SUC&9m_ZZaXNKzgSbFMgL8bU3Utd6JU#sd=35{x=f?z_qQk#8i

zV1P>H!^P_684K@oeehEKdU$6r~7KnGTFQ(5MIpr>-?4Jth+fO_bUJ@ zdF{}@&PsY?9K+$YQr6dso?GvRN*r+U#@gM>Us|vcy7QPYn?BUIrfGH)0Rd$oWPxAn z+@OZ2Ubpc&h52?*L;0hIwLcN;3UjZu$j9%>MW=`F`%DOhnu^BM+PVw*K&`ocDaPu$ z4jN~J!$?kM)7_3C$9dn3Fj5QU(&6StC|0`>k$>W+?lVgR0Nd0QV-wEp*;0ViGUZ*I zrEIHVlARh;5+r!m>LG`+Iv0NWBVWiaCT$;Y+1;pgC06b0PF@!t4m zmk&Kvjg7S^|D&!<3=sJYg}L9OFQ7Bg@;;WMFKOdh)g0V*iWh48 z*{w530_l3VP3<>jCrlqd_nI}ozs+*#iFUwzptYm z{~plm^*;cQws@wJ^Z^tA7;-AT64^M;p=vk<>AOmp^kYxN_so0O8S8wW(?!b8**==U|M&0ei+_~@oIzKS{VU2GZQAmQYRt)x z3?u`aDcDE9Ml{IisOme{*Rt=}cLJ>j1}fpAPJH4r3sUOLZz^KuvswToEhsOy$9X=H z(uoaboo9Hn%_gAdS)HeFE&abtzvV3znNy+`(-%iGjB0|j>{V&s{97veuFKNHP2T}^ zLOe6aIQ)$OpQl8@mkkINbxv>n_cNKd(BW!`$O>OrAQ|^96WEz?CB34I^5mw&j7@*+ z%|s@F;Pn^-^9ZMAf+ex*60TUu5ly*0E6tpnWfa%C;}gp+2{im^7$%`t%&PIUM;1ol z$uRYRr!0uiWxBJA|87i@MmD|Ed`eRBpO01Cw6YZ^y{78ZYLWduWbxmOOl~C5i*5;I z1OK-1j1pEr&pT&9g>q9)pS}Edx-41GvnDZ7K)Tny>{#8|T!+`)%CQ8p)!Kr81It5p z$E|U}&>HG@n(QaF%Q$!Q`e)X?OaQO*wHb~KA}2<_4#hE{15PL+E%4M%XHq};LhR#%FHZ}MKFj0icGrf#HqnIo1Uj< zqiG@_U%A2&V-g@dU7MAV-~-t)T6wm` zlk=nPv&4tOv6JEJt_rGd-Kg#S-BXfdM8y75{nerr+xZN~zprFR5>DZ-Dzr-?hEvv7?xqbQrbKB`f6H|aLl|Rzve}@p`kc=E6mv`r z-Q}#^1(?NfCu0mwtR0GoA=*w8m$rAx^$C%or1vowyVW(}+h%JnjqA%P>Cgent2f_= z^KyTb2i~Ak9ku2^zD-OG;65IjmQc@(KS8sx*|Bn%+zBFiNnr3oU&{$2PlmA@?_ z?Ui9al-mSfQ~E_|>_c@HXQc-7#8W>SO8R=5h;TF)SCE07quHuF)*6)E*H3orF9EzV zx*0bph(#on#tDfxUS_F1hiTtM0A7DD9R60sKcI{`O+9(p@SFesV9Y!RV;SgG4WD6g z3J7_-A2_mz+0K?A0eNz^U#Ey8b23rCTp|ofK*vX4#eSvBeivoI+p~4Q;;xnOXpLW< zcdj#wcLB;8Ky&&^va;NwI6ayS-Wq{w-ybFGK0Dl41y*M!kQ-y7w7m032-Sv~k4DEZ z80>E`N9}y{59^b2PeUpKd?@WHR6!ICq>~@)6@ggU{XbT`yd%k;V%VScsi~2a6LQ7d zK;OXR3*J0@f`0a;bo4*f|FoW6>-u_S*4J^0lrz=(kAnIiK<3v$5#v^!{SUMFg;M6i<(K(7vD0Nf-NbMA z=fBlBiwBQRxgH&&Lz6YGz!f`jP{tdd1@aUtjWAe^v{Ag2)}o-}F5@)UM9t;1`WEu) zBUb1>oBvr=@5oh}f;h*~og49^K(u_mqT~@!oy>euqgq_%U7Wu&gT(SJR;Drf-zkJI zupKo1vp53AkixgbZEc?z`R2?O2DF|oA2tn?>9K;U;x3C%h6+gi)eRtMeC#L))Okqz z+OHm}g1!309XZIAu=I&}{SY4HVE#c#Ej>4(NIoZ*1NbXf3LH+ zd1&{jy`?u1Z)gA16e%c#epzz7sF`=qDX9cI=nbs)Zj9tBq5hP&XeUEsU7}79O*(|w zIi5ZSnm^6@z{Sjo$(x5olvMS8`HZ#m3t7e?*vWuBd{ax{_gghTvpS>#h1(ap#+9s4 z)YDbrwj4VsSCI9=p#0!|v2O=x0Z&^VEVJlxGq$gI`gTF5@+Mqv_I40Hq&Ejg^uXTa zH|d}E<77e2HO8_$!Oua6Y9dwYKk^f4zSojw4BGIgD1*YxF)ZYnrloK7OVlj!0*=4H z|F-U?I*hsRUGB5lIbH9MuHHWfDev#WH{fg`H(6C9v8v-MEf6-8@y}9= z*%XFvao3fSB;bHSV{RVc-ZN*HXRS=EL&a{_!4tCayn*h;-*$p9K^=Yc{%Fyr9Tv6^ zdfK*NQ6}q{HS`l3?;C1E@@=MSgX00^a4uQNSI?!@)4)iE)9Z?$b#WAmD zq;6pP(@iE5`&WA1s_bZ59{Ec8ocz`j!fuSufUKvrrl-kKES43*V04>k+qc(>S0^== z@Bl_Bd`+GekuTZWV;xiV=<2BHfo=TI{{R%`&z{EX3hEaO(0=ndypAj~;?0}+Zf|K4 z`1oG%79t^gxTL5_pSmH&KemZ-8>kBJ-~07FhfqrILPu6O==v8g-8|)(5}7F7JazPV z2(%rMja0#*0^VBHyaoOd@tJ-ZhcH)QERlO^2i1&_j*t=Y(V75BpT=CUO=6jjhC*_N zV(en77!kdZHhTr*?Yxl9OPcHg%n3D#bE8=q?GJ#9p-5h7-DSoJPVtHkB z;(vg*XD8N>8ZD*e1DViD_z=YR8W)yB!)8c+S8 zn+xC1=N{bJ%K5w=Y{8xW0ovs&<^4MXb58vsmkKJNGjT0E7_x&x&%lf8+R6{$nSsu+ z!cH0Zo_q*?9;+pArs07Zo-hDT3Y5|Kq;iu`o2%h{@rC%-UD>`IpPaFEe03{;j4 zGDNHVC@-Bq`V?P4XNTHN_mQ4-S6p;4{CN5PCL?#arRrn=pKUafY214y6ZbAc(V7`; z!lqcpIaXs`wFs`-sNK1lcYTen{0B|xs&=#0!4FvHIgW4x)-^$%d9$7Q^alnkSM{0r z#xgf618Y-Sg9Kp?sbf7D@sP)Q68a`JB`jW3q$|5%HQ3Qb^f%lHF0iQsDPP7MQR2y{>aTE_8```@Pi5uT1ZPi>R|uO^<;=u{S?l#18bO zfJ=j|!Xy(=p_JK8bd)(afgqS9NlIkooK_ieOz_G{*Edxl_BS4Htc)a8&u748%Xquu&E9wD{v53a#6Q;g;=eSVSIz7W0AH-N8TzpN;SX_t4(ppTk5HV z^rUMgKKwSSinS;*tWf{CPDe2+1f%QVaVqSbZ(M-ldaRu3A8I<1x$FK1IFK>?{WRwA zYMSyw0*t&n(jM!Pc||Tbit`-=L1o8th%++YieJymnXUNy?ia2ePHj-Cv2u&&Px~Lh z33`!I8kZt-*3V{0p3eVkpvJXZ?I3Y0m&AUrBbfQ4=u2{x43thsDW3~kPta~zW*s(S zenu@AlESFhE#dp8oavTU9k&4qxJlg~UV=YkYvf0MamCYACyUguzY)E0Ve(wI9yXPd z!+^Ys!8`UIFfWPMixdq#6J$Tmo5{n(p zdmJuDIwRWoSH)w*`0rKEZvK1_qQCkwV@2Tx@r{%=Vh$zY66iHxy7hTiZpr}V?4J;l z3Ps^%0|5U>U0M}&HH?J(_>ShihHim6`w+hp(MSqyJQfQ2wk`10xBrDD5wSPsD53Aq zGEnFI#P_vk6;CuNzr)Aj(V|G&h|%Wk+02F>F)WW z%WSDtZNTsx9_AoQ2a-Ru!|EnM`@ie8r(Q)T<`15K9Z!_T?w)mplG3T4>v$S+L?J^; zU*W@AH;X?@%&@@l0z<`3D?#@sucO&u`wq70{&i0ejV)Q{IhmsI2~Q6jtv4c$pn*36 zAF~(Tk82|RUjH;M=j|@xAfm~YPI`y{6Q;BwxK8z(OVLRKnp1YO!c?t~Cbk=lyFpD! z7X*#jUtEc4RiNsRFguhZO;y3)I}B(xfUuj;6uQ?#K`<=_hm!Cogk0eYRCD(>Y88Sm zzq8Tl!Nmx%F#8Ru#W{jaZ!aGdcVy}{AwHxk>G3>TOH#`8RE*Txj8)N66;)$1VUBe1 z1DbI5kKIwDn^lZ_bVPqJr}Wn*mSSG2>ZyUkp4}?Fl63DX3p$uMqG?|yW}q65_7VHt z!0zbCMK!Br5j$d(x;$uSze7&i{tI^^Xt2GAGLE-f&n-QLNYhA9dG+%iWv@k8k=^7V zOkfv&JlvRfzb4T~Y!7CNnHVm=z|Qz>!8?DuAwTe4QJob|#Ws-_Z=GpqI5%@*!K$-u z)!7Ia>j++&fLnL1*XzdMQ{%tARmqw&cHY30=(x^cN!uEt zd$B%JNO3aFGQRHQkvjP}Y>U%7f#Eqm5$JL;`!+ZKtnh ze)-2t71|dWaLtM~NG*hz4b^AqY;4{cu!c;T-g@eLKGZM1bJMmTdyM|Kd#+fxhAeqA zRJy`Yd_t2B=K36|?x%hCew0z)thtAjBPu^h=CJAC#QLCpS2BhSR)L>bbZrDP1fh>Vh6EO4M?OmJ=JqG% z=lw7PC+nX9T+&BXNgayCH?Mugv0^v`zk(L0M=3A?H%Dsm3Q}GgFqc;@t1(LM&foy~d*x2U7z1{F#tKQyc} zm_@f)y|ST87E0i8kpjT_Ct1a`BGEc=g6~<=o@;iDU?;6T-<%3$kE4}#CM>3=2CG_z zxaaKTFIg!Un93NSYOEm^tde+0+W`HzYmach~XY)Jah80V2$NFiIHWkGei_(bzrX9Wh zaHJai5CFr}7UzmpnHw{~7Dr=7-Oxh)PoS(N^Cr{+6E&nuak`bBx z%b{}Kc9Xd)dgUC%a;PC?6eer4F^e@|U z((d_BiXI}PR}yRW&B(-K9c?=)hhfKH=Pw4JO`2l2}mx9QYy%B>c8 zH8xE(7GsX9t2fligt7m`^KyA&qnOEnmjkt86DkZ~ozdhm;5rw~$~E(JpS_(V%ycb? z#6!jXRGS*65?CT&?@pc%ZpP|mnBED&m$<&vP8SohjB)f?#HXGoJd;@hB?I_9YrQG! zP&lb4soJ;Nw?#$)B7aCb6+g)8%VgEFu@g%TD?WA6bA2LJnKkB~<@1LbftuLbA7Y}N z$`!;#Hf|xf&32Iz0?Ppt$$P~{WEk@|HIjbv8#Cv+ml=?n;_!Tii%2($p=|T9r{$|o zYxV2wxpuYEP}VDHnLp(U0gZN-zkig&SFxmqzR!+HzrVP<5Y#@;-tY=}eSznX85(CZ zrxV<^dg(j`PegXc6{i!g%NE-3J&zM_O%Y*9d4b_|yCD6BEj`91+l?1ayOGFB)<@6u zc2cfqeXItk2=2R!v&qZ?PA2jAj#>7HG(Cy2a24&pR=10U(2YG|#Zd`g5`!5ZLY}4u zBV7wz6LUaR%3eotXXa4|R%P!bh3rMQqvdtLCP!9yxjI>;#%GR#t*5Ow8fVmfqIPCy z3%r%s^c7QIceIs9IvSg_4L{1%qdum$z)5-f4fb*~R&gp8RWEvsiWPjSUg7t6ZxbK3 zFsBEnNg29vU)1cr>@i^R-*yv21wZqZ&zzMK6>d8OhItc#FB_~f4s8njyy{5a82UB{ zE9RIFeHgFdBlxBje}RXMIcT6+Sm7h*jMXrJQ>UD-whoisW%_&b0Z0MF8ti%UFwHJw zjaP7#6^oskkX+LY+rD>utrHzBH&i{@P@Wz2z}`{IEGSdmsm%?woUS9d0#IjCJXO?C zVoAXO_<`ucc-a#+gkBLFQ$9DuR^1+uBq*+SULK{?A==_giG0PgHN;t}`1iEMQoihF ztCf`8`YW8EZhnJmy9*ct?H}mcy7Y+{F-l4HYW#{SV+vzFjbWavaG&3V)*i2tNBLCB z$1+e25XWg<*o*;jT|zl>3Ns2Roa&jlmC50rn;ypRW~7Ck(7uUn;rtI@1AH$HaEV$w zweCT(S%oxHH~q05lo1!(xjWh(bF#K!Hd|FDvc9^kk{8&3DYQ$~{^^W0xED8Ju4Yky z>1M!IP!i>7qZc;$NIEXPq*!q6$n_n+odyuIwr+mKqLR8vCxh$KPHzJAI+xb{Izba`-U^d$y^@A%V{GyY zfVjA(Ev0zqFN$=J8jtZ$banVX+rU{tAZ-R4F0wJ!qoE`}4X(SntDk+}I_{I+=qSWK z_HG7sF5<49-A6-FdOX!e%jrAhps0}V*i`5>0=gDVM6U0eyy#Yz;rVfI=$Fq>2QDA{ zdd49=b%nOtPRQbPok>bjjP%^dohq!S<$0HSf z#f~|h6fOKS8B6FrUDq_v8*h1dWfk=~|H2PX_`j)>r3}HmpL@eaGBE7?;c}li#9c(U zX0sH}tlX}d5o%Ww%UuPzW1r4#!8QDyT3aE!+OJ>%3WhGt>(AShh{u1!r)n%N{p1s; zg(S0H;OBxPF3>~QpbGgem&`x4sbN`>-yj^r8aL7yha3y38u<)yN6N>Q(6|XQ)dkgk z@eHU67}>f#;6@0KlG3Ma4eKI|D(aqBYqf_>!?*Eb>yb0qJgPs-pn!sbVTyzn`$vJa z>yHi!=0OOV0~V#ExH7QHsE{iARCTPcm=S&Jt~&}21O-p>?)3~a$^}70)|H)VmQ|>3 z!CZ4!T|i=&2mmm_@Zee*PfIMhhRMS+P>|`E;}1DCG1xrEZGs(clT?4-UBR`JcIqdK z8L1X^mljUk%+2_~-X~ei&Dm=wO_Vc=FU9^DfIJpUvH*6(R+boQU|^rR{Cfb@oq64C!-|p7?zU6AFzmKHu>Dh9&l?8OiPG2&)*@y^Hs;o#fnM@ll z1M30Mxirp2tAW$aoY>$ohssYG^QKtE=Pm#4Ef*Pl7vaW%GeDjY=9k_?szX!kE@RYW zahDQWi^?#x|Hl65$tK{oYZ)YvONlX+uwF9I5`CjinjDVvABCOS)iU#%NW^@S$eC;rKVnAY7WOj0f%eI+5hz3XXQh!1m^rdKTAHr;bBVW`0q6RUVgtG z+UMRnSlWV43+KYov>$#Y2%O_2mYF}9b-{5iV0fO057Puqc1exhR}DPvoEy`tsk?eF ztms7F#u~#G^p@@!Fu#9bulI%8k3KV#uKY#y9WVnm_yRV!egFBNHYtV&SzMA92U!D5 zq*}b^ngxMPa({E;vrP!kV_4hE$94{o*$WObz=YH*v2`gb3SK!SBXm;7ZTeQ32^b(G2!Gu zN%tb+P4b-)SyWGT=qI*3uG_~_RQn^HTc0bSlQkhx}8?M$^P*6?BgMR|lDcgdTtvI(ZYM6xeJibtd1__`}Z9 z^Q=se{H3H3PIX|kCTboKtk_OxsC>Tj0}{U9ZiJcVIjPrUym$ZYFF?unOxu?i#%3EC zKh$@EN=#c7#fb?5-riYeHB$U?xd;fgswrlz(P@vig}iI+=s@CUhI z#72Uo7{#hhY8mnbZ5oFJg^xeemDdQUg<->{QndU@8k|-hdD+I=bR+QH7q~F5O#sLV zGCBmWBI?JqyRzE4j8(TcJ4m=N4&2E&9U+4uQS_pT-Ef3?FVN!6H9r2aVmLiUMEwu& zAb=x@;vqLy@oKVBSi7{DS9ip^b0^m3M{SyUcQA6>uYzOXEL7UbGWQpVBs@1`zDnRV zv1bF9l{EkYJK@(-nY6NQeChdfuxI%hHk^iQa}{DzA=M=Daj-GFGsG2lFL|iMQs?W@Mj`T!vrT>vtg!o&o;H@vwigd zHHXG-X!7GvAou+$zrqb&DFVXLuPS+~SYdy8U9YqTi^G*Wo%z}%AkgmO7pY}Swh;D5 z46<#bW9OJgGqNC$uMzxju6BZSq^Lc*ZYvSJ0c&6l7;%Jg>PmW%wOKXqv`ZNaueD#;$ zXGvb1hDoI>n~^Q+rj=eJx9_*v@!jxVY%iXd22_;^6|)}zlL|CBnaW-~_L3P@NTzElvyFczHMESS zfh)w!@_=3nTq=o#IMJx2NtNKQUWO{uf|#7dxYF`xV|jmG6-lc?vIvK-%G#vEZQuRp z@Wr7({-0yve=j3$eE06p&WQi@vgj?n$VuW(@=CY;0Y4c%zfpL1=3U7fD#}sM)hjF_ zb{YnDWQRUvGxQSDt91tI77pHDJUNY5*EoYBIR0BFxc|@Y-H>;piFq-ZUpQPf@3IX$T`~vsAtBr~j6VnCj2W;C%!1_uF>J}B#OYqk)~q<>uX(|gp~6>5dcK}73Oxny$X=KSe-sH%>C5PzvG%a;iuvrfNa-Fa zH>A&UP@~0Nft^V^QMQ9oKn-i{J^1Ga;hNiptwSt&3XAdbXv~s|h4Jv)|CT)c1!yx|a!^z0M3<%_7VPdgJGj0G%eaJ`dUi5Wn% z9Q+s}{ABl5*Cy14n)>|W&RaI`k)XeD#o92Kjkn_3H9*(2Q7El ziG2<)lI-OKg8~%`$kanB0IEWr?^$aF9$YlsxKYO#)7dGw+TnR2VvyTkKgtaUd{zcv z#+sy7th&u~b_-#sdWPy(#okfwfz@ZKkL}Kd5$wbqsRk#r02==! zc`@(07r)q_as@^J+eLFf9nsgjT;Rpm(=q5++@P*eWc+~^mBXR=VUA7S3g2ZXi^NDb<@ML#p%I%<`gS83@3P=cZ|-!fI0j z!LFJur><^*Sb@&ZFP3H6JK!N#=uIv)X`7Kr3Jdo^VqWC{UfD?HQR{-MZ3amTudcjh zt`*nbZS6i%8>l~5FBO!CS$N?lL$2ky_0%dHSR~R{CA!vIULZ@J$T$ z33jh+<(T1e*_8g=)zKkRz4c|D!^I9tW-dNYaG3EYAovKEC;P%#D$D)}eS1!F5 zgvV|hQ!ii5`_$4i-CIIUo2N?kr7+?zdz<>6FQT~54u#5}R@CO7hkJAWknkdf@J5^- zxb;(cZmb55Au@%3pz6UF^5uPZk37m^2ZB<(0Cu|y%yFQUwsMI`o_IW34X0dg$x%~; z0=iiiz_j+l3oqeeO6Bt-Z~B^9^`(gHOYP;2|5>qJ?>OEyXbUoA$Z=B)ed5Ru@W{?) zNXl>Fr1}MiD^Z+8g9AKr`-AcFj4NWFvdmT0PJ#WsH<7A?2*%_#`_b<83L7tMh1Idi zi~j-m0-&_4lGa5kfs%I3!p$WeK9FnVw#MnE%9eOn)hkMtIXaBmZO!kIZk#k&b+I;w zYQ#D#toxTWxvE@Kp^7WpAkjaVpOvls1scI>1EKdpiwWTM>z!!uV9e#acV!Z75;!WB zTvsF-4eQh*!Fnf=f03d;w6Lugh%%JOM=LT4cnD@abz94e>ut&${pNK--BSk_4qSdD zxDzq;fm$b+kZ56AQz+RF;D0~zG@lj!it;oH?;=&{L*&9&*xwIchvlgxwlNp`;_m6Q zEDH{VSE5JUKi`Y+@}mG+^I(8$kDzhtPnp20|tV8Dk3q-CZ&qpTV%(E1cH zJeqD2{l~uZ4FeP9`TEcF!i(yzw}0F-&ZSK-IEmhjxN81KoT24O`=@NgVlh%wA+__3 zXuS04!<0OyIHiknXB(7 zQCFdFopVrm_G0&j9FUS-ZMh>I5^%x@z-fYr1`V%OjX6@$j8?n<-Q;H8AA9ga@INzy z{{ap~n`Wcoy#-N8e%(V=nnvCYfqQ5)Nj2O|%Z^Y;;-Uk00~>6ZJTI6CFdp^)d~Fs# zD;iVmd?^B+OzT}>jmfz2C|XX6xDsn{v6c}t-(TefY7zrvkj|Ug*GBhOdbS0P@rqXPc;j0U9$8Fz`$q}2;&3leuW(qT1WX47BSHPtxKmcJ|U@ zSKu2ZBDCd6r6+NsjBXtX)nVSW8W_yDh=Xclw!6!ZwgS zPDHGiGdt2yPTdcTWzI2j24sh~Jy!^{K5VtDXQ_^fz}bTI6e1RTT0Ya)91~uqYcg2S z;x>9lUi!+4XmCLl?`jm&ck6#7L~^d9+4Ud_p5l_G-Pps^MVo8ppP!{RjiDta8 z8Goy9&Tm7#U3BE7`@IrcG9j#1{XT?yRW)+#ysTSyc3R!~)5T7w?=XDcw?Y+Dd&37; z5GfUbHkzi?KMc9=-Rs8q@0MWgm1%S6yMEV%72~A&uQAMW$S=(!5gP60MowxO(RrK_ z@!>j!`rSM0tw`E4_;uKc<;BNS6{pdmf;>wjJkFb~?;&qMkG7PrDk`94V}I?y97>|i7M`^5P9y5ILPY=3oTb@=t!K9`vEuK zr{K_-H~9-4$Rs16*XE6wU;#Sf%V7Ghd+8X{8gNB#o73V}zp?n3v>dZ}SDok8ESFUJ z#euHRx8E#y6l@MSLnc_TuEjL*kH(kZ#+M7>Dvfooh9AJgd>?a$4Q%IhD?5k5ouKC( zC@nHNuuAZ!laZoJd+sG>K@K;z_m5$_lxznl;sHAQ9lp_ApH*wK#V83x~-Lsk*^Aeri_Tq5wY}SG;+G{2Y^c zbc$=$lI5D`l!vWMU)&Gp{%+3xGEskSk-mWJc&qP(&e%VQYN{E6S>^WK8fF<#{GQqJ zh_KFjD+nUZ5j~*&85~HV3;uj*(B2R;yw%@}3{vHmiF?R)-~QIjJGdc>_xS1f!fk)F zOB;!o(C&nave;q zbxzcH%Rn*uCOUooTMmng!;d7+A!vJyZVLB^_XMf$STa4$9aYSjYgl&lJpQ}VVhZ=0 zj1RK<*6RpW5%mUV53+0pLL*ZDF}i|4Uo};xgDRR*a91Zha_cl*C7&~=P587#fXBD+g9O`GLR`CLqmBu*O%NdjYtP5C(-4?;>nikFf z%)&>;vg)oVDULPlS&6#sO^_~1mry~$PCaa2;RxWw=?1Pp`6(kHXf%*e(WKC+U4TT~ z0jJvr&2WYdQMglk7uU+KPWR)L&9d^&c_MPLk#@-(bx9YisjwvAFLko?P2p=43zJ;C<$dSE-r5PivZB>#K zsB=8j1UsGg_)22w2fGXNZ_H!DSqDZdGh`=Yv9#*wVNe+TpH@t)TP&AzES3Dy@28nH zA9u{Ak#(#<8B1urL=t*Ii|cDVAB%n*QdU}e7vrO5;DixHnE@WKiaP%fP;&S3r#OnC zm%^$vM=P&v0GqN&As+oSWjiozmjXoJ5vO`8RY2}c^p0$LjIUu|Xzo{iy6{~%jU{JD^o}A z{*9DdtC`C~v4+80@=D~ZAo1)?8F;HjT~;}a>|~$ve2wLk&qp08&f?HesCYEUQQtk1 z^<{a=jyqZ-4VC&ZHU!S{P&Zi-z!=QVp4Y4G{a~pwq!{MQFO>EWNCY&0?3zDeT&1!- zV0gv&Mwkd{<;pwd>CC&hI`%gW3Fck7*OW!S+0LV#rq7?z3zUF5(Z;&bm&8g(=G~aCjhNGcKPbARZPH#TDKq#fq3u!h z50hX0g@N6t!DDNVX7c^`?mxXdC@YN%yq|rQfABia^n&mDE+B2BT7G-nZoK4&J9yU2oST9N&2A{Ye)@tBr`>j)6IXArLqb20vUFil0%(EdIEa!t@reo*&|N zR(D@7K^}koLD0iYVS;)WijAE?_Md*wzQ0{^xmi^?2SUB1Cm(1COi{sx7@i%EHR_S1 z&0UycbK&(_R1b`HaQl-Jp*W@`XNG79Ihn^CPCoTkPrzY=bK z-Osi0v|@GiFK12HYQkGiP)fCNKN!>xOC{&Z4hVu_@kUQo9wm&IGNwnfI^FP}<6Hh` z7?Zf}biX-rcJc`J{Ulk}^?S2^g`4KadHdRGFrmo(jgT47q<_0DfW{F}@S)X)2O0y8 zO&HmTt5sSMuVi&xG2;;C z?%6%{tmx~&^Tpdkc70q=CnFOrpuN>gW47z3=VBLyYQ`yvnd;eM_NRKoO&(~5=XrlY zOCjSF_<5TD`?aAA0EyM_71rHkA`vh}J~0IBm_ z&@1|eA%u7MER{Ij##>^0AjHUNNMo4j{(kfTt>By-Q@OdB#sy7$VhC?DXuM=s?BEGA zvaL+1>P%{JSFlske7i~kYuLa4lcsvYbX(-2zSh7mwPA8u{w!Xl_*=Z-oTnhZSa_*6lRSx=7OlxR)S9D`Ulb_`q@ zX<0v)4UQc1X79+0arg#*sjwMa@VbY4Mk?XDP?v&!586BEBdJX4w+(;w+}mvxEvgeV zdLqAf&E%Td&{vLw+o*A11Km+PyT8j=t(Xscoxs$3@^5L(AXqJ~NY)zAP_j^=J;1p- zoz56mGz-0V=T`lXSl!$nQn$?Fg#J>26Q^ZU!(;{RTNP`=2pc_xbDBG2H={KgP-pf( zKwwD5j-aZ<52dANdYmlJ1I(D)Ip- z@)>Ze&|ExI{Gm}5&!ZS@9a~cat52pUo(p!jIQ5?|%Ea#lL^UMA(1hW$G-W=3Y~$%) zW#g8xWIZ?l-(mD1hC_j*sAs>ySsQGTC2E#tKd57w7dQt9=P{o)ePgc2|Dm+jWY;@k z?}U;JQ$X>^uHajg=d)S6P+7@Kw}uLr{#`z)7w8`agJZTHL6f7T?FC1@8}iBStRXCW z7lu!S)&VUJ_Eme8DEtI~fR?l!>C0C~*@Y(0L_V=OkSMvzvt@I0*qKk_$NV%_r~2tmyMH&5YMxoidS=c7ECN)_QzM?Z;^5w#;wC%$h|pDN$QfyM=1nwjJGk zkPvU^rn3*aa#715F9f|ApJL^8BK8b~Tiy51U_t@^&(N7TGU5Mmc$g|1dDk<95^67Nu@WF~+6RRjN_igd3 zz0FE+Cy=bja6As;UF;F{JPPv(NK*DON^sadrKxe~woeASiOC@_V++Gx(d z&1IH()hqxf=vi?0htFM~Zup)S3G`Q$xi%NtaVB_eu2Nezlk2u zPcdu8X3juON``XGkIuQd$Zh~_6mt~qsrK{7cC|^I1~p-nk&r!&ez>C1slD(|<*~mr zAfrJuyS>$~aHdE6c#PT0%mRm`WYgq~AE{`;(K+i%QgQ#t*`6LvV;rrdoroM0X|K(u z{l!4N$DA0vIoY&V?F}1%Y)fcuKo@?KPOUp@4L`7YDRqk%z?+p_g-Bw+i8S^M zt}PexiPnA|>W@S)ObEJYJsPsLtq{OfdH!832E_AUU}=)5`HS9Bt01*faeb5>o2J7g;3 z!z>T3>Ry^eEUfdr6=Jv39C!RctP;>5Cv7E4@?RLAk`AFN-Ms$v101wKvRZhSzRl}@ zDCeVuUIK+q&?G-X_*p1zp@Fn!TFOZ3f@#o_!Agu3qW3*%fYt}CrSJ^>yAqqKt-Hx< zoBEAJGIIls^Xi<}SE5M5uTXSFzCPKsV{Oy}#JYb)W9^a$hjP@lmfxr~C3D0F?sdGs z)+eP9l8Vu$JmQkNWM;oI)wqMz6AIdvFwDMAOBZ;Vh_r;i&Z<0@bSS8VsPH4&qm&QU>W)1Y`hzG4JITwv2rjo#xa?*tbO-P-dMLGCJ5j>P}&pv|3M8n61Jsl|a-x(|cwY<`QIkyZ@vEgT~QILq>$ zp{f_KfaVErju|`m=9&8HcppoFJIr`Tv*vIfmSLwWf92C(Zyz|gu%+0#F4=bHbfUI3 zFTth&)ulDLF0uWi%S*#tR5cO766k+I_LCBN)jf~O-4b%KOX&nRW++W(Zwdwr(BAG7 zUM7~j(8$Y#n4p9L%NT9y;7D=wAWfxvbOmbuL@`nhv^I>)QqBN61!nA*6_@P!-;g5l zhJib3r*vC2#MoN-bHhN8BLmhe!h2B<3!*9k;Q!UgzfRk&C?*_Z+8xHMztqZjJ#+Wwc!{g z%#6}Le*g9?IJ6Ia;HodBWW{BZ3*Wg`XU}6NxZ|3fRxv+hSMbt1&2YX2XNC)u8K6Z1 z_mhomub*G69mW(=ba_N@1!=(PhKMm(S#@fV2Y*q~`fLw1mbLi?x;5I|n;hwsgwO#6 zm~XEH9SmAt@#}+TZWcR@C)~}|*0t@L#;#++6WrSts(!w0;&=ooCR$sm_oB|3J^Q{M zF%%riKlXRHU{PC$D=GWr|S3%zSoZe^{aca}3SMabZ>{Dj?DdO=Ql7DP3jT2GsX ze%6$8`^7e8H5Ujt1F`T~i#_;{5O~(qH8p@G;dTDnYuQ`U+G4^Fi!W-4r7(QP`(Nb< zOO@);4&RKXikic)GKM0EeK`Q|(o6eyg<}^DX3uq4&|4(^BsVGR4=q3l-va;t#3D3& zYWsL54X9i$!p1UzJ4Y7Krl&Di_I0qyym)1^A2JHXZ|1u&lcVlMLQU}VQn!YZnb*Ty zsuEL@uTnZOU3Lv8Ci0Exb5C?)&?}pNTaFy}mr1$kcj6ld3>YBat<6f+0YJQ}SvjJ^ z_283KAqCW$vLNv*9^7%n4ffIh;~FcM{ys}6&VBaPcbnE^q*A-dsfLz)i5XEfRW5>m#7g?XpQbw+H$GkvB{riNN ztQFxiL?ddh`aE5Y;sHH;wshiw32NqBnskrv`n+x)cHw44|IDR3TU3{JyvS~CSCNBB zN>&uUaYAJElbx@zIRet?5H7Mkt|aa8KfqgMw+&$AUEkJz-X|P|&Qj$rUi)hSU)+^# zU>}!NgxGrHO&Sdv_l?Hg}BGjoc_By54VeVERv0*{rAUz^Pw5P7K7r;1$8^7qS) z!OwypvGFNZibBq?0 z;tc0$E;iFGnbj1P-Ux5reAJR#W3sJj+nhOK{O%BVNx7+JWWif}v{C?w4^A*jw_@?< za0o!k3O(N}TQEQ7h1_rc$n&3Y`f2aX=GU*NG*Is??!9x`wU)sD0o=^(b2#?2(6&k% zOhTi{-^$&w=@+}HX^{j{0UZOdEjkciZmiU{rM`65mFs9NkzQ!wgAaDQXcu$zfSD%+ zwGU%4Gpa=0a34DfLU|E6SX(`hVgoYz*nIReLz=8Y7dF zxj$};^SBFEVYo&tm-46qOYBhlqFbmck=g$NmNq*PcIwO#sN+I_IM3Ho+>m0%D1rO( z9UYoeeX51tuzqx8T9#srJzW!{kk-5ffl@Gn^T+XZZn_~HQm_iva6M3f{D)`=_q#qWfsBlPGnLwo23zPr!OqkP5h@iU)f49!}oIb9&_Z? z=_FXT#y~`5bds_PE^`zeIbfjY=_@s9Q0JUclFN}WwnzBo61zn$cWPX&e2U639bGwm zo;dkL+}3H{YQFcv*vxKp2TWAJze#Gng$2qv!ikx7{6XA&OXC=DB_hBwhu`cJG$PkP z4nL-wM&djy!iOG637EXK;24gUhue9MBBVL`;>KUr*o1uY&$Rji77%cyJwyvV2yjUd zNqKgM{T-htw#iO+QtazgY6qPK5K`rmWO}uH!domnWVsavZ?RmQ2FuZl2`2!`==~oF z(<&anTIpI$7*nY@jEJI z1UJ2#*?jTw)9P^t6C#@=n)s$igUWii^$j-#0EBD!bo>3-^ShgAm6KSaMH}Y|hOUJ% z)04uc?>^9cO8Hy=4fjyuBb&V|jR;^cD|8iBIrCZa02UyvcCpICm>6O z_e_|~j|mSwPa41p@xtid$`G)O7z-HrbW`CU+r7oDpuEiYXNTneSkO1#d=_Y`7O=yo zV(R!J1fk6-s>AvUCLE+0<2C*?o%aL%z9vhy4xNYAE4o+1;i)F}>cy(aY7nU}pgVPU zLR!d|mT=w3L6P+vPJ(!MZ#$74AoWHkfG@Q&-$X^^uI{}IgEkL}s)GUO9DB4jeNra4 zL%ILdz9~Yen_kY>GZ*{m;CWEh{c>}@&WM^U`=wfo!IZIMzy73Lf6EYLnwT>$+GiL+4h2cCC!orX-amPt^g-33giw7zGi zK%ndelKZyBZo8M7mu^0fY;gy2Qd~LaM&3#Y2BS3j1LbD$ePKXxUGZqd@46sApDct#_N z{UQ}@p0v5;_on%){F;;#vMfjSQ^T%8Ils_(+BTXr3Z>thh*j3-_@-Xm#ZAQPxDatbzR0l1=sb%cL9BHsjzvKf z;(+~#uvj8?f&XVxY-kUwHn*Sg>3U@zm4s|i_tT&Ibz~~Io9QojbH=oz=k`a zGuA@K))(iS=8$E#(f1X;*=rF*L}wlUH5+Ti7_+nIhK~*P@TLV6VlW`T~AGL9F2%qvi7Fu zX=|#253foBQ_{XlLoIp|+2;>X(LeF$MLuS>9p*R*!^8^F0c@`roQA%B%JE-BMW2XB z(22**Ka*G1N9*SKVbDN(%ej3wJBe}7dR7Gi0W%gM7K>^=RF)D_2{=HtcBTj|QQZic ziUU?80CFn{X}Qz641{cz{6gy!{x0_#-~Nrc#Q;PrhsWX`ecl)Y4r?pLFWvYwUUSAni~cumyU=vGrik zeC4fBAy;6&Y}%N3%W$NngJ;l-xgh;yka%CZ(?k>(m~Fz2!Tilb*1c~%KRsQWa4{e? zSt} ze7Dv!XoK)(rdf?1kd|KBgbjOs3%v~BsR*}z8>>48V-X%!^5jBI)BTk8`D~eH$*B zGT7ywK6(Fp`U3zDNonR-2zoo6VaQRc5%}Uht9Iq&-c;j@J)ug`V|$Xas0TEEzDT)9 zU*E^HyO;qFUb&zxRczTC1osvqIMmeA&B+?}k#F;D%oN(>qs(>^{_R{%0a~E-JELXSqYZJb2R_RC)GiwR;&CbEwB?H%JNV)UUK4$ zQwJEow1ax_;))G?fZ8@7*~XLkdGb$~y;hXJA&oWnPivyK<${9>Joua~SI#SsA`V_C zoge<|<}q;e6^#G_kyUDjjjChnL4P_w5e8*fyVKi}YaP&5I#&GRxMT`%lgtJS-!P0| z@mu94!}d}w^y((m>c(?a)uN70E>Ihkmb!5Hsv>I-*B9BVbAos3lW5v0JpOB%1%L8X zuEyQLODCm}4o!t_BE8yH3i>!5b+%_b>Z4ZuconYbFrEr1QF!n3)cI*I8xQKN%e@3d&t9+C6goLpb-;8&fml}yEoif*P$^%VI*4WVa))LFspM3?bk z`1TLrU#j_=@21>{Ml1U{W~prG3i#1oCnw6!Tj@RS_w~F}h8ijeS2FzyS}fJiBAk8l z;KJsZrOaLMpp1pY7BIy_Gs@>ILxmH#$<)n6NToy3?Cz-Dq!FVJBM0gX_I94oObdX2 zosDbO0}ORk-6w?C|6|yOt+8dx##+bou8NX{+6z49YyQ1E_Vv8cWt*7sD_4Tz zeTPbhD~uiTZbYrn>{D;CV?JV}N;)SsX=yE)ayU$i1lg9t0?5YjX=GZ62j|}mxy99U z|5tk$l~#TtYSCh>#r#HD{akc+}!@noxhBcVr zkE?2TKN)ocEzMZY%N2PeQCo&fM1M17t>i_K5OU9&k@hwNo<0A;p~S+n43}orsuwJB zWrqbc8jr0^!keotm>Z{?%E*LDLeW};_O|F-U6zvfVlsQj%w;}cLHh;PzbT;IUrZmf zr^iSg~0vny}^5cikXU+3U@cQtZ3H3>(=WF>k&{rqQ#h;#f7V-h{@^+*RG%Xw` zJVi%H)$A^|&R;t#d3#Y62QyC3P7wdARa2T{-BS_Ih` z3uBJIH!Th`clJtC6=MZHd>Rusu4PMnOnno(T@U`ju!=5P?GQfuO#DB@E_2EvO|H2n z-K$mMsQz?}iW`D%h>f;)LNGr}BicF`OCMc5N(Hai7(yF{5Gv|m0b>k3l7zQzP$KPxlM z;KqM?x&QnQ_!cXhWVxb;S!y?#v}G&-e~#wQEfsx(?82E^D!6ERyjAjF2an1nHd&Yz zl6?~(&276PI={GyK*NCS2~)d(ZI~J_#7oij=t1vo!{J6;Y^T)Cp&TMr=W>?ICM%vF z>;LqEjFt!p3s89A8WUf2E)z%Ul!fQd?^0YL*gw^e*UCSAE&YY1P9lN$MP zY5W(7x!_m+Kyf?mj+vg{Ml5Th{&cle+X0vD&!j{FfmBTLzj!aY(QQ3g_tbTiIoOl+ zAjcScm|@H5{uH#{K8*?Q?J<5WOuTVdp{sBzKZ zJcMtG-Ht`>^MmMXr@HZiSJac^T_8D(#Rn39ZqN77f=FHlJg1~Bg@>zQ6$V92(Fjp& z=4tvnqBMe_&zqYuYI5V8bj+|oDnj2~2Uk(zM7QT;b@%9a0rO8jOoS_c=4hsdQ{p2V zzVZRcyd%^;arkH9%WtXJc36^8ByYcGirmCGy6Gpr0Ea+*4$0MEQ}wp90)_UhL_D*+ z=%}FmZQ2~wd;Y41CvBRGWx}_G7WOCJ_I@s{wr=B(SpyG=vzfx<8}M)U+JRGFVaK(B zZ@ebM+G()uF^f5{eH|{7l5+WunxNCtL3oJNLcU}@0k&~uK9TO%p%d&7u;asaj_vAS zNsZ$(pdOoc)Yk$tKT$pI zFQ2v+q)r!FQP(R(0S?17pOMQ?jeQk%fyi`xVf@{{S9K6dSsg7$VY?#$QlQZ=1pn#n zq}8aCrgu$PM95HO(yRxL7;|RW=3$qrwA-=&hy3i|;rZ4HUYT7FV7|y7dZdL8m${Dq zYdamihyXh<)mxOgvJis7z0d~Jb;MpfI@tzD0yOjpAkSU)XC=Y^Xd8@i}#S=-9UQ2RfXJ4Q~{R5m+{Qu3a8)x8J1%_a@k` zeMA{*8o4Yb-&W-~&LWeN2}S45kSK8p`Ua-&X?2u$cnECP4 zf<_w9P@#d9>w;=bha@0{4eQF=?=O2G=8>Jy`BTkH_DSC9xXDkIX4mnThlEF>L4}ZC z8N;B|>s$I&ypBTTacLatzX(-S)=eCk8cPqTQC>;d2mIid$*W!>fF5vMyF1Av)aT&; zneS+dR|5zEy{HS|IJt1SNh92cd+eTl-MGRGt*;jYN>~MqiI>GLy!#Wkgg0hC(EnMM z@-WL4`H6Ps92XwZ8p%K7Hf#Uu9v3{+Cv<@jQ_socB0M}sxmSFbhiA_X&8lIQSw$kghF z7|e~}YNwSnWh1x3-5g9lu><0(Fd=s#DAiP(wTAsMmTY*R1!C&{sPN0|r*}2aZ~mSJ zT=H@bY4FOv3G54HvC>R`Rb1oPb>_goO=`rQG^of!dw-kOTg{JKM-`-Wi5zm9=3BCQ z0x&>utXluHrWVi2Re73#qh<%G20RW7%G%(-1F&X6GP_`zB)0 z2yzA3H}=k5RR;0zr#a{I>5ukeCSpJtdc|a93dd=^3^A|Bew@B*p>jPEVDa7DI|wN~ zYj+R&*6Fgd)TSt-Ke1i;tzEFCN6GvVZ~5lB1vtDg@xG6WiM#5R&e5@q`p#wtZqL<^ zDAua1bOEYQLz1PH`F*TBNI5la_;(yA0J5IY5Ecf8y!tKp<9`4y30Kr4fR8yQ@}H2n zT7B9LF%A=XJ68s7v{&cJ$1Euu#lYAr=@!T#Z%LU!6woY%N-#;O6Eu0xbIzDMn~D~G z{?40@Dp&^Q2sDcI3cL+!aYCOncq9tY?~QK!G8`0)E&jtxt%8;f&XgGXF^hya_%NFI+DW7|&$cU3f5& z4zp$ZfeCzL(|ns;<$L(*T*#P_CJCU>VVuoS*$CHWFSJpdDz9UV`Zklbp{Eb1U5S9k z7jEgGH&XP7nZy-NQ&Jtn{zm%JTBoDTaJ7A+zGyVD5#%qkGFf99QLzl(`t>B^(Hbc&f;Fo6a@~l=0{ca{nJl0rFKQhUne?4UF7vhLi zF^vq=0E@ZVxgN=M$&`*R)|~h*bhwh*uxU_vyO!zx_dIBp;l7CUBuHx7$R-pvOoT1l z(I>w6@jJ(IZQwzfj-}C)aO=0c8piWOILmtf-Dq6G>a^E^sXLlztr4(6eKOOiej~O@ zKFq&RMln+$*c+mJ^{d<2C+hS!Ar zeq;;Sc)VNbTQa}@3G)bwQF-lT8JEHXP7mF9o0A6nSfp%Jdzs;Eb>YhcM>m9{hV8ga z*i$2PN0W5&^lxm$SeRu{)LTinQQHTV-R=`0Ijc^6?CeJqvx4#`_5$xBl4LdeV56dV zQz4$9i)vPXF}cK)EYpyOBmb3h!X>=lm|Wx9awuByyrg>;m^ws!!EPe1fc6+XU7r4D z3meizpH{)>==+Or2zCa1Q$LLgsCMq!*perHxI<8|==Ztl)V6>B1B^$eI1ZNk-BVE# z0Y0U=W=;&LVNmB6%?%YQ^X8rC?}DFZ@-bk;))TlArl4Jy-4&Wk2Pw<{%KAt6ApJRU zSj(0^-@{?#FNW740LA?s2zxq;IjhX;QcKv9aWPKG7rQ=}zIc4Vsou!x^)*v;}`O4?BL z=DXHwjq5(alGi~^&$7d6L;-j&-WN_Pu~;R{_lzt*)zeINQ6h};J&qP*G$^or*Yzxk z@xf~w)bOS`$|aFrvMD`14eK%oczM4F(kMUyzgBbeX}umMn%5ZJAyoPphdRd^^P~=j zy~E9)GIJN8d}*M4;(eP3=pH*!+_%@hzd%4=M7K96q2NGkl4aMf7uT@mzoy2s&NM2k zYpu~>5@$4)dtFqXg!tZ;kFT$Y_I;Zkx7~wUdgtO|Az#dXJSw;l+Cj3c9)kYIEZJIXiqGdiN zhV_i4MPNyx+38 z8PKL2rwz|Ji*||h>x_i~1h#AVzUl%rB4mv=z);r)wS#4lgKr+4y(ebORv0CXS5+pa ziR$_qkzQ`|MG9YVzj$@&N%-ryGfoVxspuRm?R_@Gz_;@vg`G77E%uZD);skJZn31E zBFKk=dBG?f0K3j!)T5V{-biW_wr2e^?HT$4;1OQonc82$=V)1oO^ak%V`AUuhd#sL zh?Zrqx0$7T$vjgbsdBc-bzx zNPV&4tO~b%lU~eqHS_M%R!_4-DC3c1C|;E z3+4Q_dt3lFbj`$=Qyzu9N@$ahaiS1s9{iJec~`nBBcSfe&K1=suSayu+W%vcI(JA9 zR~e1L`;Tp@&!?6OM{uFf_#Mqz*Ru{oG7`Z3Ok*0Gky~&vThld8#08HR3+V^^hYs#* zSDonF$#sf6qhVPY3j>_ot2JC$Vg115jvSQ}m%L-{f;s^){E>E}E9?))9gNNoeMA4? zgCFSq9`9R}d7lohaD||&vg&74Bz(v%iQ|Xv!@+7#>Cp_^luX&8$xn4Ya5Hu(f4vqt z4x|HIr7QknFf08hFV9M|bzO4hT^i`~q)nJcCP{x*>CdBhF_6R5whDcFlGXk*E_1Gt zUX}G)FH5lXrB=&Mp1jME{~jY8(wIf+5#quyKBV(9?No%dJv@JSi}H2t7`zs892Xgj zFh>7_T;^j>eV}OPRjr&F#A~M}?{t+zv8)bgMAo?&H)sUk!jK5c1Yf5o7r(B=vxxFb z9R2#3<=-tD`bpsjzL6l4n6n9`6fHbrMgeQRN!9p!DE@^c{;nXX3rbN*i^;v4EG1BN z+QC!2a%N*jBJ;AH`*4>bhs_PAf(-lhiY(p>kj~}xDhyGVjknfc;K3tjgCIP>%NZ@q`$2}6^Lw)N zg7WWjk|ZV^6?`C*R3rKe8~*cMyw~nEzJHFrDyP=9xqO)}Ci;&bdhWTzr)O(y@pr%C zqvqVareH5v5W%330J9l{VtU6e(mLS3`3!ijH5XaK`2q?n1@JgL6<{jLy3$L3;19I^ z4PsQdfdPV-PFTk7eNoERYt4cWSAqWhYZ&|@$is*l;=A-fnl~)=yr>C14(St9vg7Ow zF}|JXrr3|iw6hIHWc2+l!t#BLFsGJqJoq(``FQKQ0oY1%&vRyP>N=zUx}f+7h71CjaZ^Ff3jLes3?lillZT`Xww*(s^CAuD zW&yTwvce{lqiE>D#Q37d)IsS_?f!{2Qj z5!n|W#x8KYQ>?W_8%^VWR6b5(D^SvcE>_OtjtJp#y>Upn^~l?HN}=wad^lZ>`TH%c z3EF+n6zzB)fe=wL4^_&uPZ1w>v!>$M2`>BA5~pxoyRyf&rjC^NC1AZD*d}({DQbR_ z8F$F< z#?NO~eWX6M%RK{+Rr$>j-luSJ12U&RaBt18;4gI;doe)rxitRM?LR$|?|AbBPqwUrTT z-B_Z*gWPpH-dgMBXJ<6G?hM9OKNM$o7y|=KZX{@DLhhYm*qFSl`N3bnn^k^tjCWv9 zHyO$G#kk3sta?tpx|ORcw|DWMNIH5c%E(k)6D!&TC+_}c zt&!1_%V`W@N#Vjr8A*w$6+)9aEFGLZcCxzqxN&bNtTO%n!P0<2Ga| zFL;3NX|Zj2%f%ms_Zq!YK!Pw_rc5H6ibt2oFgMe5Tl^7lhjahbNnZSeC=f$O12zE@ zMSOqTlA`ZChlU*m(ER<*li65Ue=2E%*H!8*@f!8Y)Mk|gQJo7WpTmIJ8l7dopUXt& zs1r87vbna} zp~0oG*V8FduY%3#wC4yFswM5H_t?Gh~zZ~Bj#Fkq%U*7GS^{_MpS zKfU#Q!WWlEslWiy28A;?oF$5ABR;68{#%|PlhJ;Bk+t4rJ@`v|Zr>`tVmM0>FvA-0riA-z45c-tL}Oh-+m57iANwE8X^fxW2oKi&7UxEhqEdw(T`h zJWZEyvt3NxHGQw+ho(1Z6q z1t;;=_d9u`B*SaA)R#exIdYH!-^w#!_lB-j6sn*vt3?5*3Q&=51$D>)E z+C`+lRt8*ZbB=xI8p07ek|H))HjKZqKCz?bbi{6b!jlfOP*@1K?#qJ^o=<%%Z))og z?&&$`~-W*xhDdxn~0^FIJ(zUoH6v=`9Lkkd9x(s@>m8#7{M?xH3u z@!&cjimXKTrZ;6IWkipM*R!#b3KrIFf@ANmZ$*szkQL4ULCx%on5RJ&RpNsY5U*!0 z;qyV=)nQt+Cy3VX038Zmb`6Ck(+pJ=Z}~aXjjnXtPqR-k4R1BpHa-hL4xS;jV2AehQic+zL?0&3?F@OIb_d zA2Gx~)H-nt;9|9{YMa6EjfTPf9p4@BN<5uT@l7*|bZ8T^eXJDu-dekC8;3#l#P}B0 zAcYgzZNjcztARXxe6N~%XWs1lLa6Qh-*-P7-1Vf20KW^}rV5_FuHVF%*BnUT;$CD| zObmN7>Llo0Y3{22&LQG2e?`meFhGy1vK1_Ybq_RJI-n`Yx5S+~t(d1-p`cTc!t-*=+KMEyN* zmT4$&*Od}0ghKTV56+_6<4TaBzfyQ%LHW+LG}z}C&nhoZe?fLG2nBogA}p;JkEY4W z&(7E4CQxVBRzxVtjJHo+_|2>y`1op(%d@|>4WQWx3wuJIyd3NpBO|2JxO<`|*$-;! zbKBzV`nJp~ao;Ct(d@Y=5{a6KEP!ju)3k^qYNyaWqLQ5f#n64B&)K_L%(=x++vYjXNr9o202Hq~;t1~CmSfzDw3aTcw z9*0vwRM~Vb4+51Pm@4V!1pd96Tb~G%jMo#oV@EkS}NxpvT-Xp+YEH)QkV`TwqsmxVE+9qzD`sHsf{{OjeiQCEQ(6Yw;%n@_1#&|;@(*Y1^McyC4u?Jd;bGqLM8HoWjyb^fnV(cB3{2R8=2;6 zAk|pi@bRI68srv~aigT7zkMo>F_4?Vel zBah@5%#Zdv(Nv?7{YCxBJ<2s!gd66)ALnD4wMZUUj|b7q8wsp4KD^mshblq~UcUVN zFu|~ypi2Hu__ZlGwIl2RQ1of%JzwUJ9)i_%NPa~g0Kr_D>3I1hBU`cdz}~<)WgJx( z=>f!|S$BJ+b4N~Qhr&)SHuR&9D%xz{`Oc({7K?$%k9P)7C{*?vtUi7bozmm?JWvF$ zG(rk8JnhA@S}-T3dE#Sj3VrcZER9llRiK5QkdjL66g2u{ zHlIAzy}LS``J2>ixrlM*XT~diJxbwvX?M79i?RiE zf`0(qcqIe5a?-E9V5u}5rd=Db&hU5pb18(*GE1{-DOX`Z?mES-AL=l!XPb~d62=~G z;8l1`enqfO!>b|QNC!qVV-bEmB@>i!5s&?lOb%fd*8y#emIFT$TzWi&Ws7~@?cjBx z0|=q4-mM22NKx`Q->pWZnxwSNItL56Kg2;$oW zYVLZCjrx)i??{F>zHkUNXq>a7MPe0ha~1!s<;J`yU*rSD_o{iEOx4R3pkMuVa6Ciz z(pUe;e_hC9I;1}e7`AfC$p`_ zm0TA`{s$2C?;CEO=KAbgzV7?NOH9y*A|&qMTZt0K^X~gcevD5=5H|Q#U6%CUn)p;; zu`hqCKH(e&Zp-CLcbf?b4m;IU*Y$K35lNl*no7Sp%q3GZ5<+d=iRgCa+Zv z2SH~?Vjj#SFT%v}AkHVRAarEgX{c7|PBjw&3xF80^hjc>wJ0*Gn*#rJS$0TUc$^sU z#1Xn)+5vPc0XFDW{^^XEL|j*ok$~{Qm$deC(_ikyqa65skG_ zw>HU7lRFylYyZhBhK`v9HL-R!6b#p=?fLLmHG2d$8g9QXT3!ZftFif=h=AkCH(9!? zIy6R^ifObIZ<_sbnwF$&@c#hsKiDx)9!Z87d~+qUGsd1KjmqDV_^rrBdPY4bU~G!M zuE@9=WF2UeJIHUewQ{|AS$W=Q0B|x@;){)mk5Rq5a&N4cDtbczZL_t2^$?Pm3JGe= z3yklvG2mb^>Yq5^Hl~)s9eg`9QF6$3N>yXV3(9wMj86E<=iGB-mPpa#^a-Lusdndf`mOrL%qnPN5t1fEj(_1@iGl;tCd=2QryXNGVSR;)%1uIMb!b8FN1}h~ zLotq;T!I<8W+GWWVDux+C2U*a>+wtz34{2vEvy`#G~qa@>u}KP8rnrunOilG^A#7j zNnM}ljgB4ei|Gn;9~330M=F+<$oo)jE0mN#4$sKTY7i^SRs9gvRHO&*SnwpT@{`DJ}rh=Qn`&nt7CEqFNKPbqt zF2hr0>4!pX_7xVXQ)A{OE|=_4&{B%4pS2Uc(5ET)6J7t|ad}zSIc_m!#zx$}_JfQ+Ot;po4q6&ao0M4t*2_M0Ug)}i4&YrWBOi|J zjht?>eO*5TznZ0}xjk%}h%89s%Kcs`(v3A2?RS4IZZk8?g`SIfv0(qwf?dQ`5n)6~ zlI=rE1^o|zBmA412zcpt#O0zU$l*AzFU}Tp9C3|z{^;ZX0KjL5E|=I^(heWhDu~_s zk?aU9P09R$TFem}4oTD_)`5+V^+IYdzK6qEOmk1(dR6QZ5x`|kuGK@BmTGeoOWA!6 zP`Lt?hkVI9p^%K?n>S@JmZH6+QwxD8MJ`_Vpx-8Q?8Xw3h{XsN8@cLUVv_C+R{;Tc zgiVSdrVF2iI6uI`UltwCuitv*oOdG6U7K3il>plr%G*yZJxipH|U_H+?%4g&gQwT&%N; z8l}>ZyD3ZMNQwUe_zI%ts~6fTwIQ75ZRZSoUpc24hUjsE{Ib_Oo2j-Wa5?h=&xORe zMRAvdV|xyfp>;l@K#xg=&KvZ-h_riVCtaU;3drr?JZos){p;~~<7IuXg;n`$uUKW* zxzX0Yx*~2CxR~(?V2qM?N191Qb;XHMO|;2VNj`DCMO|KGJl1h*$Pg{XQBCKUYl?D8 zc8f#*aORFE*c`ecMWy6=fkrdW9$Oj{q72g^E%S#+5Kr6bJ^udf)pI=_WnFI;XECYC zAhkMekcWtv#|@Iq$4!gteE;V9blL0^CZ54d_LxEXFpputXPhgTu5rDLlv>X#3^EL~ z`>w6}w;+d-b$dn(%i=DV34|()x)R-SQX)p$sr@r2^>+w1xFLs?G-B)k!xQM{IM3$a zG>>Dg1|-OwfVfgY_=90shMyc}q$! z^^Yi5_=9hBmzezR#?G(hNp`~NAEk;@?FKXM3;$@aB{k&f%QZRn3D4$%DJ%a2a45Ck zSoj?EM=th~xog1P>h)`infwv>p<($jng26%=8sJHVI1Gd%r(qCY>Z~e5uzM3!`#E1 zQ6uE4kP4-?nfsdiNSXUSqf}z9oXHtFk%~%DD!RU3f5GS1&+|O*_v>|XfUk|M=k{qW zrR^Cs|F5Iho{Xl!fVz`$WAi-;!?6@CAQ_ZB&*dl}1f~SXy>tVZ}vfUu)lqcse-J!hR@?NaLP3E$>Hief0yC zp(?p%dtrU`-7wYgAK2Qea(m~D(ym*0887g5rrh6F2BXa$GBkV3e+b0qnrZvI}#;Sv-vKm(k8~9xBYuF%HGMr-Jk{E3Hd*0u&Xe8%C`YOZ&dz#_v zKm7%>8;?Q>X^L5;8o->iemeUm_Th|?dM5-<*QXt;eR2JqZc92)tF4{RSUX@*ha-_V zk2hmip@ONy2H|kXyy8|$T*eWCNW9oaFtrZmzHyRxQw-p|-mQoU*&lN*X?HdS-5IO# ztx(lzVmyr(nH}d1b*?#*Gt_xTF!p<6g-!7xFabf|^tNj`BzxJ;CIj}%qyg(MXX=(V za7MG?=-&>5pLS#h1 zo<6;Vn(_#ecAIKeHq&jh7tFGhzJQFRV%06@SQ_*^ak*16#~pIf}|I%-o?2piJ6XUYg3uy$wa;ul8n@f4*Qxg|t~ zWPwH7AvIeG8fbxMtow-rz7UeDp>7i(VzK!ziFGINlH_w7fdX5SMzAwoS(@%eex*z> zQgQLgEV=xH;`0^tsQyxZoeqwTEN|e9tCgT|`0n=kWMydnyS2C3nE=SI3r7N{$Jac~ z)H_EK#pug+yudmq1F+wjYkCI14}%i_1_zoT?k|*RYqoU>Pm_ErS-AfIhE*cg10B2y zjI7pKi&fJv5!{-we;FD>HhY2>(C4zng&%-i*T~=G8f=_Eh~jAfq|*44K{>9Z&OjVf z3ZI^tETuv(^%A*}S1kot9!b&V2plSay-FPY732_h;^{-mmu=9VzpKw0(I2od@{^ydz{vg(zpT0V9pDLZd0y&U#)*PbCVpT;C>h#Xk9rhW0V5SlsM!p z7oD5PH|Zaaeq^DC5=t4>vprI*g@@9IB|G9zOhJKina4jg!muucDqn$jU@b+Ha!WfE z2c6YU2;8!(SN<80O@LaO1wNe8emz@+1u9N~`ia!&Gduq3@v=oiXrh?Ovfc zK(yci6K|05XD7z2{`7|o#;HT94kgJX!#i#xw#GyJ=?{tVa|0-#kbL5O*BIUxKG?F~ zS;g}Al)ru}4!+|Hmce#Ee0m{#1YCq~K(~s7_gDO>^YpsyI^!`ZC|DH{tYKVEZn94} z=<;FQgO)|q2YnHDTPvS_9T3&kwdSogn<`lw;%NAWl<4etXy(sPDB&McP}kg^zfT|V zACPaw9WLt*j9)47)zyIPi0RPT4Bl+a+2`G;8xR1$am3KEmn-Ozb$j&P^3Qe81NeWs z^O8WixXy(MFHMeKo`xraqx;8RG5&iwr&pOrv+h2snsOQ@$|nwPzt4X1;FI@Z;B5)@)a;w=JRDPX+XtIa9jO` z7AwuQ=zJ`qE#V*wq=gd(L5i)`S?HYpbF@t^EBnQr1vbW=aR64VcAeEeiRe~96{MYpeEw{?yZflj0sV*uUG6aAOqboFCA_in9y z<~dH;+4@x>5+<;M14d~Wi+5&nEhOIqnYs2BMSmsKH+_OFIZ3dU#ZhpUnTX8|&~s0b zmU@`zWVvm1|JnEHTF#C{f*v7r1e%Ucdw27T6+3Cl4{2ot=!%28BPed*`Aa#o#-GA# zK1N3q4#^|hRr-yN9zz9k4ugiBulP%6laH6ogfq0q&R}mnPN!2yf}}89oMlBcH>R>k z-$l`jnXLPg@OLu~1KXB(g0 zIVoNT=I!4LCo2SmdU%~_8tVT6EU=6E zx`LJA_ui+fR2;#bGrusvmaXxPAB()x|bw4H3P}DTX1a`V^Y<<+m=Ms zm$`2i$ux9005e!HzvhOf^m!efL6*@qCee%2sSh#u7m07a>RN)#H?{}a+57ZVBJ?Ex zb|>I~)_xUgQdC-g-2PVLYf2iQe0B?}wA_L2Dtd3&P*`T9Y=tw)i1EBpDozA3n3el* zUfWz>gNHgJ<+SV z_x{8i7~jv4In4rIka}f@pn(*KUXQf^Q^%?Md0^#ZO(v-lCB3n#fL_E?`uBe2Wc+T| ztj6*fa}D&;-U~p_5IrykF(RLu!1}t4W=?G3!RP3$pmI=rhFQj;T_-(m_;-63pCzaU zMtmj5!8HR|VYRt`E+Ek~-wB3sem?*9!sZZDH-7auO-!KatcXu}ZB@=%>BA4MjpS^C zqlgT;a%tc&=)xt)LR^S`rFam?=Ir#jexf_^{^_2<6e-ZzhvrWP`^()T{iC-Gazqt= zU#QMNR;!)^mQ4v)Y5lBn;xI#AjCMU;yDcprCvzqRePO5irNWdzoD;S~(-3{(D&V$s zTd<@iZSyCrPImN{2qh)2{O=gv}1+JlfuZV|M5fF*g_z&Pw4b>;jJ==?U zqt?R%;Ek&cuJ8qT9(LQhFJ%_S%}Jmg#T79B@A4HwIsXi z>hv0dQiUwtAFDjLo08r@{$&x#J|E>G2$afGrDu43J1l{wodSShB6XTif4Hy-Lq`Li0RLVs~LxzyYI?A%w}@}`p#SY2Z&89DThjEKlFNIFC=OYF=JSS-XLiY zy)#?D49*nJ%{J#rLn{_$hsjwwtXLavnLVJ@c1XGgx8^ z)r(?#&kcpsGtQ@gE_&@+-d`wdnyzaqNMW#})6E+h@y)?0sqLe;{BODPi)zl{C{6>b z{Qkc+KFUYRW%EYxS?n-Z$+hANf_wzaWH6N=sv7(1DrOed+v3be zVz!qHz5(XocbD|5=<5F0^8i77$CS(yz7~s$vmJE?hvg3!UVE4KgX3cS`5BPHPb?St zmw?g%f;NH)t?dvQja3Pq{!rwn@2^l5plkT+UFItoGuu1=uEn&ZBl&(+V0;>IGBhTL z^!la64y2XNQbhdepaoMY8)ohe(is>3eI;x4>iLv^tm~7CYUs>Me?6?e@=`gJKR&4jll%PX{@W(6GfR(3@!+X2uiWoPS4}f)-*QaKv@G_!ZcFl(qNH z+hIt5XZ!G#v;P6I*&cqytHaz3#JC#rg|JRtYXpA>0$NK!=tx`?PeHG`ZB&UG?a%ej z_6H4Fnc4mF0u=uk5Bm$ZoyUSMDvQ}91C)hhUFjI{n@V9y$+j~*5jiX%H{@Cpj~e3h zC1rW{A_=&^d%4tvUZ?<%wxx0nio_{cOzr!DFSmI&{_lqKpaoQ(|H-~|XF{q;i&GytaPAKg66~PiPadKR=1uKbb^5kpa@@}3<8*e;x>yaAN1V%|t9h8vnWxLwV z;zR`uQ%GcSI)R_Y8L*FF>Z%6S`gp^>z(z<4%DFzrU8f(a$a!6{#q3Ib^q0G*BOScE z=HU4nmj&Zc4%{KYF}7Y3cYCq3;Is}5JbMhcqUu(gU4ezbx35kUieMYS{)YN$U%v>K zL!BQO?;l&cg~|s`QdVXXe+I5B9kGdRtN-PHI8uv8;8~bX#Vpjw%D6IzKB>=qM>C5O zIZ|FEs8rNNKLv|v;in7D0o+Qj-niHsqC7AR`-?PQH5st8{eD>_hS}o7M<{CLDy{H- zp|mXuzExne(_fhYN2t~yVf!x1iekRvb9tNs*VK+bCa@$4mi9?P^mu=oO^}h;k5d-; zklU9ssb(b*f#F9L$&ZiI%P&Qcn^g+>*P~6+Ook3J^hO`fI}jCwD#U}pK%}2%m;EO&@>jZ+rt9$hHui?z3t_@eD0^4Q7 zIjLjUyuwT8YFZkqsLeLqI#bFd&say2$l|U zSM8lwac)jkPmVs$2tNaqt7t}iZ^2K74^|{-wg`P4IGkYzD)dFvk0Zw1Ulk<+Qdch@ z6Cm2rJ5}=D-9rvbS=R5VI=JXw4I&|S;H~}1!M>hR8wn2MIzV3W)HV$Nx#ugUQ9QZ6 zgImIh{{f1Z%m#y&MCEzu{~go^6{52q-f8rUSik7}v%Nx_A}!97fUT05w}8cp;~rGX zY**z5$WYA$YFx=1|1TUS{vPl$R;BS&R|URVN6oNd(736`EsSUc-a$6#b=INh5b^%& z&nb_hWaG}!S3kU#231A2F3}NUQ-RwEi-gs0=6}F#?@9QIrn!6J5yWei&IO$fit!EN zw0SWhrYphr%~ExsU9vzv(dBIMeMn&cO~nAEp-9w!fMy;Vt%r8^N|nX9d`XP+b~hjN zBa`<1nRWF7DV3BO->%5Ht0k2%AE@=pSkMCs%Q*}89c|$Lp!*F1V95_=8PgXNUv8ck+0x%M z{6QPe;hSNLA|O6cJ+9j&Aq+Vyiz-X|Ri?J}LoVFfmG@2=Z-K7>JJ9aCqr@^TDtuj@ zed)cxaYCDmBaprAEh}^Y!99JB6k%_iKBR3cndPwNAz?Ht?+iEue$&Js0JC)>;f7fc zU0@;YR+RbDsxkhgXNR1;0Z+a_s*{r{tE-hvl1h(wPhwzDqIDa6nB?=jUnr)M_EAT% z-kQST{*JA@!sGkC1EG8m@LC8p!XFM+;6baKxNboI0QTNKm*GiN3=##=)lQtUsJ>Y2 ze=oF7%wQQ<`prTBxro2|(Z2s3RZ>f-RbK2g{I)7W4{}xLcQ}6D{Gj4LsNy~p^CNg) zd*D%-MyJFe2(S`dknw>TN*>^Yc`f8h4!QMF*Ea1da>pDj(^wyFJAxfir)BOGn$55} z^v8R&VkXd6hW%(kbfe3eyk~1r^&wL?10pajaGu@T}Mj z#@9Fag zNi5mxpRYg`!nxxcps^KF=n9)_MDgG7L}2m=P7{eGS8|cUQ!iXs1y6i*Aj;vURTo^A zU;Hop^~3 zV0W$G1$5pM*Zo}d2n7=Ucz0v{wWhqSNea$;)3+8z{F(j!T%-HGCEJK(^GOBfCa4*t z&{lIDBe&|_cAYa%Q_UkE^aFgfVdsGd{O=@)z4}pIlLYM&z3Z2by;?sm$ zB`$IHfin0`f@Fm592U~|_F>oQ6u4y+W;M*_2`t+pR|6|%T#`p!1>w&DSZ~bs7EbvE ze0D}0971qBhM(FpgcvMSw3#Y2;1d3-M!wC>_BBcU`$q>{h2uK( zOhiUnPp^m(uFD?l#cA_gh4i^-A9U}ock!gzez2<8GrK8sEB{5g{>(+sM<~1P8BaO0 zx%|Rt`m@+fD`7W(2%Rb}RoK5$eEdwtN!7}_B@@T(G3X`0-b5EKy~G0k-vJvu_eDn+ z?1(Wb-hY95+~NI|p|N}v1zkKB;-ZEiCT7(hkwWVjf|_}fm1=l+Yp(&alaZPWu9e&3 z&#&^t?OeS$y%l~F2D_$h(v40U^(c$@i8Pf=NU(-ar4xo;WSusmUrHHBR2h7IFp%mh zPNwahu}N(sEQfL8NCRIToepI3ZMwgqUxYi1mZr+^$qT9AkA0RiF!$6-#rZd?2)Txm zadOff)#BJN6{$!J`||7Hg1@Tqc<1w2yTEpx^0}W!->WBQ7t6Q|Av9;pT~UwnR7*}h zWPa5mLs8*FYchNvN~hOw2g~qsSPMJP2Wq*#aVf#rH zABSjiQZKzvjQL{sp6d^YX!+Q85d zNCHD;@rOe(Q+N#z*pp1cGS={5Q&ZCnJr23JC*_`b{|F!opc*{7{LAhsH%z{XD9iSg zjfUP8Mbz7eQ0EHqK4v(^u(KEQR^iAQeeKRta9?5Eav?Oh zw;?k{G{B(E^=(D}${`s{I3w+8x9PS(8p7CWsQAb)Ulq-}hs>sPFklX|20R;YUf@@? z`}oP`mZP%nUfz`F5p2`gWuBkf0Q%cA;aQ!u}*rr`7Dleic z|5Z!{#91`He=?P)3K3*sQtkz@69833tz29#(PH8p07ltTCtjqZQ6uC^@nT4ou%44% z-ul__(=ylKI1z3@5h>!JV=si{;6dpA7vk`a+nn}%_TH#R&~*#hld-h2zeWM|yYX{; zw&OB|OC)P{%aEBepYN4cSU6}=PCR%5M>Dv0bUCM!y5x2bbcK2#`GZJ_YnFmO@_U4{ z4k80MXkSj=HQi(Ld%K5|+mI#{2(N=?aH`e{_k&NNn-=>$WHOG5di&!B+BP@vapBy(603Ad>Yf zn{Iql2rsP^%GZtTgC78h4zWbWr731kfWUP5kvo=)vZN@VX=FOq!95G@mN$$0b=tnK zD2R!2!wos3@j#iHYB7#Eg7yk3A0Ld&z#eVcZZ)yFcTYui?>C=TLqyE{JKjLT$81@( zsBI~{7_%I=EM@OnFF3HkD7w=YsFuRh6QjD{2UhXcH=EYWXtXtlciCZE-k}*oAgO)GT@NzDQ9-Yy#VpJ zFeT9f>xe8skjt@Q1yD-f+ZXRbMk#$ZE=xS42UoZJrTqQvw54u7x75RlG-&z}2oBU4 zLus3L&!AS=pBgVd>GZjeul)0Y9?0)Ygynv|5pHa>WoMT%EkZl)}hy9oR_- zbyVKbezM|U-p0P4d_49z#g&ngOt`5Uv$@L1K*?CImENQ{Sf2dWaico1fGEluAs?H5 zO^v|2H+Ui!MABxpSa9M%REiNPX)Z)v|_(9o= zmf~IW=~@IzU^pxvS^4u*A<5ihUhy2+rjR?D>6aIc;{zoZT_z`#T>R->#jxH{mMf5&q+)m9Y~50T=PXtQ<>DMV|IiVVx9lU{vN*d#IlQt})|PerB6I zK9$Arl~MsY!6^DkA>9F`6Wv#hr2hlFapiks+5Y`i@{t$*Sf;T-V-6;8aQYa_oYPqpK?8$&=huq~tr!*ShN0-`g~> zD@qF|Pwt27W#}+A`m`$m^de83MB0^*5uglG_L@9 z6tiAaRcf{D%|UEt{UpDbkcJW^SqK{G|1n)t_&XeWDsvwGnE65`Tx$I^g1jbYiQY|2 zp~{UuP9{SXZ&l%4^|B2cH_uUjRWDhex;6Qvmj||JrgX`Q6n!!rw+G8DctP85YiLGPQ;iQKLHO4*^ac+-jSoOYu@VF|0ubnwN zQ~*0vhqK7z{D|Gfl+IihG(vpqhL7IJx{Eh_7|14ki=i3`zKg#FR!e1w9hU}bNm^}x zV9{8`*~Wh+hbdTpGcb#R z&D&c@Jr_ITpJs)or@x@P#8awR@K_#tu>)z!gqS54Fvm?Cg*TKeX9A-2rZl`bSbI;e zYJyH`-%^BYvxGf)%9_OhcLP?}16K)rHA4cnDe-l6#B@P67#W8%W_AO%gMu6_noHlB zGsHvx1K5Q@<7xDC0?GRN=D5_qo8}sWlVfqh;P*KgHeqF&neaxDrM-1wQKU$s+pFN6 z+)gny{WnDl&fPyw^*Hyy{$yahrR{f;{NfiM2gh|Ku9kuNk*<7E7$i!=fRTqF97G%r(Qi$F$YWx@itA-R> zSpptBy9Cz2!xhA%CfOMm%bl8}eS};6dcPnnKeKk&4A1~=RIP-#S}p_8f-FZB+;=#s-nit*`Tqdd z=B4YV8g8wBB?zEIj1_oXJS3V_M3)$Lzltx)3su3^&LezQl;lSwPETjc|FEV{H6(1= zUx^puJ{!oFV?ufW@0r=H1(f>X>Y~4)J4@-x4p*l9uaq1v04kPph%|~y{ac+gsv8X; zfF7gF2~ZL;UVBDJw{1;h?@JdVmF9ZKO%$vT*7_MV12OFZe3zY&QAc!4p;o{3Hzmo~ z@nk_nSU0O^%Ia@Mjk7=cUpoI9v^&RjD|jji$D-LWV#(j1?k3)yzR3Mh6h;aWe6R-% zWjItw4uhWFSN~am`B4{A%H?hc{_TzGaHyU2gL5Ufx}(=JHH4CCVif&B%R&}S7Sv-+ z0b_zqjbU^(l;yUwR5UPJ9+qaIsP;Go4(3SOeJ`?*oY;aoL=s8d6a@krz%yDxdwYh~MkuIbknmquZEH=5j> zeZFbA@uLvW8~fe#t2JQWcbEoCRXzM;s@|oZ*3BaHekc9*jioQt7Eh;pb}~D}nLX32 zVl)ui7pv=QqJ!a4;|9H2ZL3&|KLu*)BwP^KWfx&|`6|E{o?s+89PXL^Q&R0|xQ1}9 zb)-0W$zkejiuR}5`ux)$v$h_7J^0{C^i1jyD=NYtoHD=Ml6Q_0r}pF<7rRUidDL|5V5aP{^(lZT3}T3amL*N0wclo$Cp$VY!RKb>B+sgUeW@6Ms@ zW+#mFpFjF|ycu@WpRi!4OEU^V14{BezVNk7!nqMXL^YI;Rr31v`(8{#Av^Qybyxhe zCK%Zy;g4rY&2h&?IVaS3$CW+=dwoF*-PqN(<~RxE8w%|~Evmf`cowOMs)Rfj*0#l7 z@xwf^N0+nD$qo5la{zXr2>DzaywkX))Iop|Ywh^K_Q&Wd~r z$6V<8A43lQJ~r4_dEC*1(DlG_VW2PJ>kZ-U5SrC<=hAqUQYpP|B%n9uUByvwO>c-Z zceDHw$Ke2}=(aJ1@$!b+5|V2T-uiDW)PCZ)2}@xDW&Nf0#9f|}1E+b{%R#(3d+P&C z9H&lqc0uvGAPz9j2=79uE3(u@|3%upupW>F>Ij5-v)fbF4#~`k5akLmqI=;k=1k%D z0e@=$?%g-hV-WI7_~ZS_7NYAgK>Vo4?Tyf9iQerQrt1g8D*uiC9O3Q_#x4`kwzx$1 za~oSuoK){>`5m0kz{m&{07OhscXCowfj=Lh6(_}RpD(8Ytn>?qAp++oM@nT+9&bB# zNfbWWr-`*sasC#Pw-$F>`0Q1>#(dUka6exsjQngb44%U)D=vk!yPouHUYkuxfB(Jg zO>RZ;B?QeVQEokm+^^-5Qm^yTeFMwa)8>H+1sn-K%$;_9bagS>(i3%XH9jPflj_V? z5d?ANzxVtKo#8M9ua7696}G_r8zDUq+0?dRxt3{2CoRQ=tcpppj*M=i=Grl%HCDlp z?QwQBKD_g+EVjXZyeDTzsUblL(6KpiwDINRmXAC68tA*%Y4*Jswlwxvgf3VUuqj+V zhF&SB@R>VpMoI>rskN4yyfqoy<`11m|E6S@8)Upia@&0+`BQl&4|XbYKbtL4oKw+) zvAQmI!Tq~3nmVs+z2vGN&rTu}OSDj?3 zW6NCT7Nn1q|TPW4NnsMkrb6+G#n&vwr#dAf*{2ki*uOUi{ zaw~K}Bi>T#Lhsf@+K5unW%yRL4gkih*pjH!pX!qoa#dy~VrXssNw$q{53qR=9!v$M z>5sG}m;PMvc&1Ec_3)YjQy*q;4BdW4tbr$wR{-rIwM9pcS#uSUv|*+9&2Ll*u6Y%z z7=s*xg#GS83k>8SWdcL7a#qjaw^-=8?8 zd*))8M1+@{7hfj(Ps9ENN`b>z?CUm3B@Lt4wlKra!w~se$EV*whc&3OuWtVt?-v8f zr>PSo(2J@?T(L7uW8`g_RHW{BPPxmk3;^5VJv-$VrN-^cS$(FNea9DrRu#&le(=c|KN|e&+}iW#SQ7@~pTv?N4BPN*M&r*>oO<%_?;M`|zHak)Bxj_x~H-H@87 zE`Hxz^;e2)$kq}$=CI>XL$=wlXI79hNQLu*6_Npba4ys#rC%98f&;(otsH}K+*}0e z5U%}Txt|>sVh#1b7es{zTIQE*Y))NMSKISIN4>BDKt+#LvSKUg#tr$LZAX;f&TvA8N z>KzDphlg8Oq73~7q~FXNXxz!*0$NwFk>RC={u|c@$w-vw-y(fsXH^uuu0gA0y3}e$ z1CBLf84dLN*BtKuwDLFjL;wA{`mem_UQs1K8F`0xMbXR&ycAgfc9Phf$#k`ua;?~? ze_T*4)oxzo%;7bTUlp<01JQQe+{1;eEiNu(9jm5(wl7p0(9^wjxxh8D4L{y>GES?* z@1=YWc2xgff0-H_rn~S~t*0T$chng!s`z_S!pgR^t#-v!zNgB@VDncn5ExMIM8SJq zuOH?mIqch}@@riO=ISb#%LaEorDUeQJ}G0etK#YDS^!Ryl$OlP&Wu`8T97Wud33`| z#{3k~LnboBiH*G1@NKRCm`GTH^|l+obFT4|(7>}DNJSC!r+9cjF&X7ci54llpVlyT zI$qI710BM{r1fB%f&0r!#pt#PL<_ctZmlg@;lKjw6o;GRA*%b{@Cr8 zx*(uUb}dk~wjQbl{EOnVihG`dC2F-oK!qx=yN^-YENpwE&fmbpjXy-siTGbkKiA<#Zh33?_0&uuAl{QNw_PLhwzp_cPBSMihRnsAl+XJ;n)r32i9)KD}1rO}g12ZhV zcu)=UzDpIbshXpjqZ5T1I_u$j(}ZPsY+(+_IE?b5;Uh>0Id$9{8$Lx@A9+|ZuzBNzZ*fg*H#X{~h$@TiFi~`_c<%Jt?(bu$g%lp1-}=EQH&AMHi|rF{D2hdGTyYLZMTSiW0M3W!$I#aWr~3#s>$cO&(&nrz6tD_m7dc|A~qK6geS zn=n190|L2#3%2=qEst8Cs?9h4JE=cJYer)rSHb=FN57H#m9ACz!dS`$~ul4B7*#o^uO;H$yceehT zvOXH788m>0wVs+;NqT}=-BWw0AXhbBYGzc!7P}myOGtS&x>F& z<(VJrB&GiVKZslAKml8%?qgEO&T`kAKZiK>Hva)w!M#IVXD`c!gM*pHXlJ~LU&Zx3 z`BK&hk#bqz?3Yi}Fu@$l|8Y=pLW#u(+e&7-UnNb3ZD3>dWI= zGaLAhAlXXSSVd5nTDPFcbceH9wDL#qAQs^X4@7TO=(c}Pg!93^yguom(=T%b2t~Ci zPgcgM*O?Acf&jHUB?mT88uuD1no(!2GvwS&6`o+D%_pw=Tz_$u)nn<*@_6LSq zx~$2gv%P0i4C1Ic_Rg!{%{WY5T{xxM^yUpBo0szRjQ`hI)PwzMYH~>BO;GUuzuVTn zw=XYh(0^3&(+9V3PJh!xBN{+K#~cX8geJKKKFI4FDUi4`>sh(j?_+C(jFHn0FDewV zRW3o@e34GWId8-^RW>D4E27F^-9j%@=%JFkr3*r*wcI-d^r4waw9P+~+d80y(JK79 z@acJ(#1=KQ&}w28#~8T2=ry`(Zp`8{eq%PKUXIgS{LRM&e-m8Z8c$aF0`87H{8;b0 zimX@kl_CS&x6?yk5$2o2H?_3_dYV6Ij=%i6 z5A;$kN1N)(3A#keQ5n=q|gx;lw9vxUT zNbTafWq~?nRzxzYHv40Lh9@+Q9;tHkY$|`d!qG#@n=f4*3{3o%6=zX7&rG>5fiS;* z2f;9c!nbVJ^wVKRMI*69;XscMxoG zywmm0&AV7nl(il250pjT^re*`#R0fidF|-O2bgG1PCymEFvPmE zPe7Nq+I7GU6vRNDwAi*@XI=qv?}+H@ro*qkKb_#%8wZ{A@VOwabxAGW*Xeaz0%|97 zjob_tgazJNIvT78E9ifO(vUL8JD;;qltY{*>NT#{e#v&JGXfIJarDQiLzZe5kQP*~ zU-W8;hXa>dSv`7xn&5Lh-7Mu0LCFi_Bw(#8ASiF4yQ1B@^TZ_~kd3qpAO0Xz{%X5d za0XED$$Y?fp%}>?k_C{TA|Fjz5sg|7k-nHjZ9LY(II3WaPB?M*rE+_D9IGg=O-;!O{U1y{)=gh^ioSC$XFqm zciP+YVoZS5BKWlX7Tyk>7|4b_4p@7fO|WUykx7m&Es-udn6sfl>T!;Sdg7!WBRl{k z9tt}K5JD0A*Zbe4OQ`ouU$+Y8X0!uso?xVmv zar!$!4|g$YmjBu;&2Lz3rw)#6dBj7|QBtmGf=Ebcx1R6FPo81&^;d#T_Ug|DxB6jl#}nad)ob!*msn7EG>?Zke9Xv$DOejx9No?3nbu~k zu4HV5lK{Gp1fkil?|n9Jdl6qJBnHfRIY*-&bAM1Oq)TzOX(U*b!2AMWo50Y%tse^~yf0(h9{caKM^#SV8vNV9KL53%Uu^YgP3=_;YkQGI zh|>!8-Pb(|{Tf~FM#I1N#W!IPW?pLeR>;X%sA2{DBAheDyP>GZ8i?C^;NbQG9{tcI zq(oJ1h@EV);%5ScD`iehkrS}SRia+Q!=@A z15I}V$(;0`nXC{`#9Ci?#5JjWwk&sLMh0WX4{-4iXHbk9%yh2~j;k`gJ&a5^-}&M3 zlET?f@B%F7E+j2T{YA##Lu+&5qGYa)&Y{!}Ehe8KLTv}90Q8IEr-doSqv?fn>gWx^eHYQU8-~u!lV4)k>i*OH0P_@?n=91S31;q( zSn6Jaj?<9N1@p|Mso%);!FMy>S{5W{if9y6|HBY5bg}Otdj*=an>WX(I*Wd7NUA7r zLp<5PA~VcOz>a;Dd`6a_FutTt89bj%0fbIUp@9S7obudeyv5xJW`X=MF%1@;P z-9_+n`|dooW2!t>a#i50Ev&nV`a`biN`e0LJXPq}0i-8g8uTw&$m(vIBj2QSFV_8e z`~4L0CXm?HZ@{S7P0s_v0iS#*E90U1_GTMq6nwseMsLxuLtMr6hlmd^9hMl8wR!K% z&sMW$c8d8g{Dz8QaX&>8m36b0oRK%>OU}uW2Ek5(4tb(SIQ7p_Cu6zjl?W$6sHBH* z6w%rykO>7m7jXYvg{0bYw#H+thEhS%6agLtmgXV2)G3aufn6tZPANKgTSHM~m< za1v+@mI;`Sr}K5#LbK~*NU#HNa9|(?Pzuaag+E9|Lb&Tjd9)y6imJf8$eI+T%7B|# zp7xkAfnZuKY=(dW0%xYD)||zT${nB$iWg{3r3@0&BbyE|L&9F1hVB9(FM^?(7?N>x zK@;`|Lu3;_tdK>Qa;3-xc~9NK6bPVV5oqDKWTO;AW~WR=7$T1?1eGDvFP#Rh2@g0Pje~R)aY>U;;vV;Kp$)^FjdC zO1M8Ei?~kUc(c~zFH(P*%!d$s2wYBiNv@L3+CEkAkkc?CT9LR3Uo|^G6bj%a%jLFG zgaiUu?5YbMQ4*&T-GR&w1ja^?A0hz2mdIC(V*r5*Rlh~0peX|)8r*?(UEH}z$~8gz zxtK`Bv?b9eq>;qmt&1N?c4~mJ4sNuhup$%zsT6B{$4HdJkr0nK&)jlqnglc1;2<>M z`x+R6B-IW={iDYV@(t?e0r;&P)^HV+iFvbWElSF=U^f-&Q(EL?)pib$d%>hzfk1_= z1Q7&n`^GlON4k^cQ$8#wn%aP(l<{M8P!414+KmE0$b5{?=VcIXFA^rAKjI!BS&S)H zX34&5OO~g>oKJ)%%OxV%2|x%prAN2&k1r;HbOWoJY!cQ=g|0+dY<;X2Pi+43m;M&d z1FF!r4^q(meu!Tw9iK>ZNTCN!2O#NHzCe`#lv)b_4npvRmE;b>so15^p#FdiE>PQo z`~h95CP5@)ZrOB{fD>3Z0~bx=s(0{Re{or35~WU1~DaBcFEZpNbY~s@<%|lbD-p0Cwo#Ol|`hi|G{N67a@CX}AHdy6}<5@PdjS zwqU?l(8+oBZN3)3d{-D_YJh-ZCq^$)fg^Z8=$KV6jS?dyj-nPiE6h4jlmi5kiNFK~#5%0qCiOa%U(DclK&%FffA9qL)iCL5sD#Z@>Ql zGh_b%QH_Z=GYVjB8Hm`Pm&2O{#Mz;fHdd+>S^Q$1C=fnUy|?a2y{uY*sNmqyg%GX` zk`?NcoCWLAKEg~`Yx zLRfOM!H1IoqWhw{lAz57on74)1fmPaC9wrXYLaQku!oX-)x;EvRy4;c5C@tSAp?zd z8r|27&1H%lq)p>b}siwz1yN`M&Z@&9i}=60)a;e76A9u zFa#os-Y{g;7;0HDqL=v9ZhgFmm}%#pD0y#CkmzDfv*ixCC6K_=s<4i;geeL97{Q;f z;Uma`I;AcqXk0Bg`AT`C5fkdrl)NUR3WlpWW(tNzFAapg zno)pB2rfWqhg%VF5M*J42&H`GR*&xbYBsrJl5S*&?g(-twdvKVMlD!95(rE+%#{o| z`KwBVeHy{Rr%?Tz8Nm${Y;mx>TqQZOpiv=+N`cGC`o5PCN01k@r{iV8WXMv8iz^tH zQ{V@wM(6=v^Y-2*R`0upIzPl27ILkqsm3LsxyE9w1w0Q!hJO?;sjn%^ z%DZWT6)A6wA0B-Z6K+FRT1?w7C{hBEzQ9mgz?=ZiMs$S294HWmorE1Et5*!C6ef&* z5CG5hm&Eg!8o@In`iu0-s`(n5!hzHg2A%@WrWr+=iUJgOzyZb9BIJ=JN&y#=_+EKMN&#B4?<4q)EcGD_Kv)jA&K9R7Vz7nT)Lp1dgyt?w!VeHGe$4 zZMN_9k4fopcTj<;5ssm3qJxZA(;FHjLaGe~p(^Q9PzOBxRYXa~%2ADk1VTPsdM!&l ze^eF!04wRIhPe^+Oo|53S!A_M6&(vugXn%^OB4`T>7n7q%5N4Yyp9)BPlgy&R;K}Y z>?@Ep!es?6AviiuOh}g#5560&k8F166$oLkzA!flMA}D0s)^u>A#^8W-k+=AQ-$ZU$Dx%Tf|UlTCDo!59u+q>pQA8@Ge}^cKPXSU96_Lc!<5BJ z5QLXTl@myyXcxb1mw;pd-s7?Yk}2@sU{V!y5;i$GXi$+JoRYWTP3{g3!nqSS7pnL+ zVxvMZRWr5yaU~@Es9PN1APZu@FE*3JuKJ{4N6AV>6L(0tJ##DW`jkvN@?_1gOq~|JgA0AQb=r literal 0 HcmV?d00001 diff --git a/samples/simple.lua b/samples/simple.lua new file mode 100644 index 0000000..ef04c39 --- /dev/null +++ b/samples/simple.lua @@ -0,0 +1,21 @@ +effect = nil + +function _create() + local fxSrc = [[in vec2 vPosition; + + void main() { + vec2 uv = vPosition * 0.5 + 0.5; + FragColor = vec4(uv, 0.5 + 0.5 * sin(uTime), 1.0); + } + ]] + effect = Effect.new(fxSrc) +end + +function _update(dt) + +end + +function _render() + gl.Clear(0, 0, 0, 1.0) + effect:Render() +end \ No newline at end of file diff --git a/samples/sunset_sea.lua b/samples/sunset_sea.lua new file mode 100644 index 0000000..dc3b50c --- /dev/null +++ b/samples/sunset_sea.lua @@ -0,0 +1,169 @@ +-- Sunset on the sea v.1.0.1 - Ray Marching & Ray Tracing experiment by Riccardo Gerosa aka h3r3 +-- Converted from ShaderToy to live-wallpaper system + +effect = nil + +function _create() + local fxSrc = [[ +in vec2 vPosition; + +const bool USE_MOUSE = false; + +const float PI = 3.14159265; +const float MAX_RAYMARCH_DIST = 150.0; +const float MIN_RAYMARCH_DELTA = 0.00015; +const float GRADIENT_DELTA = 0.015; +float waveHeight1 = 0.005; +float waveHeight2 = 0.004; +float waveHeight3 = 0.001; +vec2 mouse; + +// --------------------- START of SIMPLEX NOISE +vec3 mod289(vec3 x) { + return x - floor(x * (1.0 / 289.0)) * 289.0; +} + +vec2 mod289(vec2 x) { + return x - floor(x * (1.0 / 289.0)) * 289.0; +} + +vec3 permute(vec3 x) { + return mod289(((x * 34.0) + 1.0) * x); +} + +float snoise(vec2 v) { + const vec4 C = vec4(0.211324865405187, + 0.366025403784439, + -0.577350269189626, + 0.024390243902439); + vec2 i = floor(v + dot(v, C.yy)); + vec2 x0 = v - i + dot(i, C.xx); + + vec2 i1; + i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0); + vec4 x12 = x0.xyxy + C.xxzz; + x12.xy -= i1; + + i = mod289(i); + vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0)) + + i.x + vec3(0.0, i1.x, 1.0)); + + vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy), dot(x12.zw, x12.zw)), 0.0); + m = m * m; + m = m * m; + + vec3 x = 2.0 * fract(p * C.www) - 1.0; + vec3 h = abs(x) - 0.5; + vec3 ox = floor(x + 0.5); + vec3 a0 = x - ox; + + m *= 1.79284291400159 - 0.85373472095314 * (a0 * a0 + h * h); + + vec3 g; + g.x = a0.x * x0.x + h.x * x0.y; + g.yz = a0.yz * x12.xz + h.yz * x12.yw; + return 130.0 * dot(m, g); +} +// --------------------- END of SIMPLEX NOISE + +float map(vec3 p) { + return p.y + (0.5 + waveHeight1 + waveHeight2 + waveHeight3) + + snoise(vec2(p.x + uTime * 0.4, p.z + uTime * 0.6)) * waveHeight1 + + snoise(vec2(p.x * 1.6 - uTime * 0.4, p.z * 1.7 - uTime * 0.6)) * waveHeight2 + + snoise(vec2(p.x * 6.6 - uTime * 1.0, p.z * 2.7 + uTime * 1.176)) * waveHeight3; +} + +vec3 gradientNormalFast(vec3 p, float map_p) { + return normalize(vec3( + map_p - map(p - vec3(GRADIENT_DELTA, 0, 0)), + map_p - map(p - vec3(0, GRADIENT_DELTA, 0)), + map_p - map(p - vec3(0, 0, GRADIENT_DELTA)))); +} + +float intersect(vec3 p, vec3 ray_dir, out float map_p, out int iterations) { + iterations = 0; + if (ray_dir.y >= 0.0) { return -1.0; } + + float distMin = (-0.5 - p.y) / ray_dir.y; + float distMid = distMin; + for (int i = 0; i < 50; i++) { + distMid += max(0.05 + float(i) * 0.002, map_p); + map_p = map(p + ray_dir * distMid); + if (map_p > 0.0) { + distMin = distMid + map_p; + } else { + float distMax = distMid + map_p; + for (int i = 0; i < 10; i++) { + distMid = distMin + (distMax - distMin) / 2.0; + map_p = map(p + ray_dir * distMid); + if (abs(map_p) < MIN_RAYMARCH_DELTA) return distMid; + if (map_p > 0.0) { + distMin = distMid + map_p; + } else { + distMax = distMid + map_p; + } + } + return distMid; + } + } + return distMin; +} + +void main() { + vec2 fragCoord = (vPosition * 0.5 + 0.5) * uDesktopSize; + + mouse = vec2(uMouse.x / uDesktopSize.x, uMouse.y / uDesktopSize.y); + float waveHeight = USE_MOUSE ? mouse.x * 5.0 : cos(uTime * 0.03) * 1.2 + 1.6; + waveHeight1 *= waveHeight; + waveHeight2 *= waveHeight; + waveHeight3 *= waveHeight; + + vec2 position = vec2( + (fragCoord.x - uDesktopSize.x / 2.0) / uDesktopSize.y, + (fragCoord.y - uDesktopSize.y / 2.0) / uDesktopSize.y + ); + vec3 ray_start = vec3(0, 0.2, -2); + vec3 ray_dir = normalize(vec3(position, 0) - ray_start); + ray_start.y = cos(uTime * 0.5) * 0.2 - 0.25 + sin(uTime * 2.0) * 0.05; + + const float dayspeed = 0.04; + float subtime = max(-0.16, sin(uTime * dayspeed) * 0.2); + float middayperc = USE_MOUSE ? mouse.y * 0.3 - 0.15 : max(0.0, sin(subtime)); + vec3 light1_pos = vec3(0.0, middayperc * 200.0, USE_MOUSE ? 200.0 : cos(subtime * dayspeed) * 200.0); + float sunperc = pow(max(0.0, min(dot(ray_dir, normalize(light1_pos)), 1.0)), 190.0 + max(0.0, light1_pos.y * 4.3)); + vec3 suncolor = (1.0 - max(0.0, middayperc)) * vec3(1.5, 1.2, middayperc + 0.5) + + max(0.0, middayperc) * vec3(1.0, 1.0, 1.0) * 4.0; + vec3 skycolor = vec3(middayperc + 0.8, middayperc + 0.7, middayperc + 0.5); + vec3 skycolor_now = suncolor * sunperc + (skycolor * (middayperc * 1.6 + 0.5)) * (1.0 - sunperc); + + vec4 color = vec4(0.0, 0.0, 0.0, 1.0); + float map_p; + int iterations; + float dist = intersect(ray_start, ray_dir, map_p, iterations); + if (dist > 0.0) { + vec3 p = ray_start + ray_dir * dist; + vec3 light1_dir = normalize(light1_pos - p); + vec3 n = gradientNormalFast(p, map_p); + vec3 ambient = skycolor_now * 0.1; + vec3 diffuse1 = vec3(1.1, 1.1, 0.6) * max(0.0, dot(light1_dir, n) * 2.8); + vec3 r = reflect(light1_dir, n); + vec3 specular1 = vec3(1.5, 1.2, 0.6) * (0.8 * pow(max(0.0, dot(r, ray_dir)), 200.0)); + float fog = min(max(p.z * 0.07, 0.0), 1.0); + color.rgb = (vec3(0.6, 0.6, 1.0) * diffuse1 + specular1 + ambient) * (1.0 - fog) + skycolor_now * fog; + } else { + color.rgb = skycolor_now.rgb; + } + + FragColor = color; +} + ]] + effect = Effect.new(fxSrc) +end + +function _update(dt) +end + +function _render() + gl.Clear(0, 0, 0, 1.0) + effect:Render() +end diff --git a/src/effect.cpp b/src/effect.cpp new file mode 100644 index 0000000..d08d97b --- /dev/null +++ b/src/effect.cpp @@ -0,0 +1,237 @@ +#include "effect.h" + +#include +#include +#include +#include +#include + +#include "globals.h" + +#include "texture.h" + +GLuint Effect::g_dummyVAO = 0; + +static std::vector SplitLines(const std::string& str) { + std::vector lines; + size_t start = 0, end = 0; + while ((end = str.find_first_of("\r\n", start)) != std::string::npos) { + lines.push_back(str.substr(start, end - start)); + start = end + 1; + } + if (start < str.size()) { + lines.push_back(str.substr(start)); + } + return lines; +} + +Effect::Effect(const std::string& fragmentShaderSource) +{ + const std::string vertexShaderSource = + #include "fx_vertex.glsl.h" + ; + + std::string code = + "#version 460 core\n\n" + "out vec4 FragColor;\n\n" + "uniform float uTime;\n" + "uniform vec4 uMouse;\n" + "uniform vec2 uDesktopSize;\n"; + + for (size_t i = 0; i < g_Displays.size(); i++) { + code += "uniform vec4 uDisplay" + std::to_string(i) + ";\n"; + } + + // reset line number + code += "#line 1\n"; + + GLuint vertexShader = CreateShader(vertexShaderSource, GL_VERTEX_SHADER); + if (!vertexShader) { + throw std::runtime_error("Failed to compile vertex shader"); + return; + } + + GLuint fragmentShader = CreateShader(code + fragmentShaderSource, GL_FRAGMENT_SHADER); + if (!fragmentShader) { + glDeleteShader(vertexShader); + throw std::runtime_error("Failed to compile fragment shader"); + return; + } + + m_program = glCreateProgram(); + glAttachShader(m_program, vertexShader); + glAttachShader(m_program, fragmentShader); + glLinkProgram(m_program); + + GLint success; + glGetProgramiv(m_program, GL_LINK_STATUS, &success); + if (!success) { + GLint logLength; + glGetProgramiv(m_program, GL_INFO_LOG_LENGTH, &logLength); + std::string log(logLength, '\0'); + glGetProgramInfoLog(m_program, logLength, nullptr, log.data()); + throw std::runtime_error("Failed to link shader program: " + log); + } + + glDeleteShader(vertexShader); + glDeleteShader(fragmentShader); + + // Create a dummy VAO to allow rendering without a real VAO bound + if (!g_dummyVAO) { + glGenVertexArrays(1, &g_dummyVAO); + } +} + +Effect::~Effect() +{ + if (m_program) { + glDeleteProgram(m_program); + m_program = 0; + } +} + +void Effect::Use() const +{ + glUseProgram(m_program); +} + +GLuint Effect::GetUniformLocation(const std::string& name) +{ + auto it = m_uniformLocations.find(name); + if (it != m_uniformLocations.end()) { + return it->second; + } + + GLuint location = glGetUniformLocation(m_program, name.c_str()); + m_uniformLocations[name] = location; + return location; +} + +void Effect::SetSampler(const std::string &name, GLuint textureUnit) +{ + glUniform1i(GetUniformLocation(name), textureUnit); +} + +void Effect::SetTexture(const std::string &name, const Texture &texture, size_t textureUnit) +{ + texture.Bind(); + glActiveTexture(GL_TEXTURE0 + static_cast(textureUnit)); + SetSampler(name, static_cast(textureUnit)); +} + +void Effect::SetFloat(const std::string &name, float value) +{ + glUniform1f(GetUniformLocation(name), value); +} + +void Effect::SetVector2(const std::string &name, const Vector2 &value) +{ + glUniform2f(GetUniformLocation(name), value.x, value.y); +} + +void Effect::SetVector3(const std::string &name, const Vector3 &value) +{ + glUniform3f(GetUniformLocation(name), value.x, value.y, value.z); +} + +void Effect::SetVector4(const std::string &name, const Vector4 &value) +{ + glUniform4f(GetUniformLocation(name), value.x, value.y, value.z, value.w); +} + +void Effect::SetMatrix4(const std::string &name, const Matrix4 &value) +{ + glUniformMatrix4fv(GetUniformLocation(name), 1, GL_FALSE, value.data()); +} + +void Effect::Render() +{ + Use(); + + // Set default uniforms + SetFloat("uTime", g_Time); + SetVector4("uMouse", g_Mouse); + SetVector2("uDesktopSize", g_DesktopSize); + for (size_t i = 0; i < g_Displays.size(); i++) { + SetVector4("uDisplay" + std::to_string(i), g_Displays[i]); + } + + glBindVertexArray(g_dummyVAO); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); +} + +GLuint Effect::CreateShader(const std::string &source, GLenum shaderType) +{ + GLuint shader = glCreateShader(shaderType); + + const char* src = source.c_str(); + glShaderSource(shader, 1, &src, nullptr); + glCompileShader(shader); + GLint success; + glGetShaderiv(shader, GL_COMPILE_STATUS, &success); + + if (!success) { + std::vector sourceLines = SplitLines(source); + + GLint logLength; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &logLength); + std::string log(logLength, '\0'); + glGetShaderInfoLog(shader, logLength, nullptr, log.data()); + + std::string logText = ""; + std::string shaderTypeText = "??"; + + switch (shaderType) { + case GL_VERTEX_SHADER: shaderTypeText = "Vertex Shader"; break; + case GL_FRAGMENT_SHADER: shaderTypeText = "Fragment Shader"; break; + default: shaderTypeText = "Shader"; break; + } + + std::smatch match; + int lineNumber = 0; + int column = -1; + std::string errorMessage; + + // Mesa/Intel: "0:15(10): error: msg" or "ERROR: 0:15: msg" + std::regex mesaRegex(R"((?:ERROR: )?\d+:(\d+)(?:\((\d+)\))?:\s*(.*))"); + // NVIDIA: "0(11) : error C7530: msg" + std::regex nvidiaRegex(R"(\d+\((\d+)\)\s*:\s*(.*))"); + + if (std::regex_search(log, match, mesaRegex)) { + lineNumber = std::stoi(match[1].str()); + column = match[2].matched ? std::stoi(match[2].str()) : -1; + errorMessage = match[3].str(); + } else if (std::regex_search(log, match, nvidiaRegex)) { + lineNumber = std::stoi(match[1].str()); + errorMessage = match[2].str(); + } + + if (lineNumber > 0) { + logText = std::format("{} error at line {}: {}\nOffending code:\n", shaderTypeText, lineNumber, errorMessage); + if (lineNumber <= static_cast(sourceLines.size())) { + std::string line = sourceLines[lineNumber - 1]; + + // add a ^ at column in a new line + std::string arrow(line.size(), ' '); + if (column >= 0 && column < static_cast(arrow.size())) { + arrow[column] = '^'; + } + + if (lineNumber - 2 >= 0) { + logText += std::format("{}\n", sourceLines[lineNumber - 2]); + } + logText += std::format("{}\n{}", line, arrow); + if (lineNumber < static_cast(sourceLines.size())) { + logText += std::format("\n{}", sourceLines[lineNumber]); + } + } + } + + std::cout << logText << std::endl; + + glDeleteShader(shader); + return 0; + } + + return shader; +} diff --git a/src/effect.h b/src/effect.h new file mode 100644 index 0000000..f0f9e83 --- /dev/null +++ b/src/effect.h @@ -0,0 +1,38 @@ +#pragma once + +#include +#include +#include + +#include "glad/gl.h" +#include "tmath.hpp" + +class Texture; +class Effect { +public: + Effect() = default; + + Effect(const std::string& fragmentShaderSource); + ~Effect(); + + void Use() const; + GLuint GetUniformLocation(const std::string& name); + + void SetSampler(const std::string& name, GLuint textureUnit); + void SetTexture(const std::string& name, const Texture& texture, size_t textureUnit); + void SetFloat(const std::string& name, float value); + void SetVector2(const std::string& name, const Vector2& value); + void SetVector3(const std::string& name, const Vector3& value); + void SetVector4(const std::string& name, const Vector4& value); + void SetMatrix4(const std::string& name, const Matrix4& value); + + void Render(); + +protected: + static GLuint g_dummyVAO; + + GLuint m_program = 0; + std::map m_uniformLocations; + + GLuint CreateShader(const std::string& source, GLenum shaderType); +}; \ No newline at end of file diff --git a/src/framebuffer.cpp b/src/framebuffer.cpp new file mode 100644 index 0000000..d7c963d --- /dev/null +++ b/src/framebuffer.cpp @@ -0,0 +1,166 @@ +#include "framebuffer.h" + +#include + +FrameBuffer::FrameBuffer(uint32_t width, uint32_t height) + : m_width(width), m_height(height) +{ + glGenFramebuffers(1, &m_id); +} + +FrameBuffer::~FrameBuffer() +{ + m_colorTextures.clear(); + DestroyDepthRenderbuffer(); + if (m_id) { + glDeleteFramebuffers(1, &m_id); + m_id = 0; + } +} + +FrameBuffer::FrameBuffer(FrameBuffer&& other) noexcept + : m_width(other.m_width), m_height(other.m_height), + m_attachments(std::move(other.m_attachments)), + m_colorTextures(std::move(other.m_colorTextures)), + m_depthRenderbuffer(other.m_depthRenderbuffer) +{ + m_id = other.m_id; + other.m_id = 0; + other.m_depthRenderbuffer = 0; +} + +FrameBuffer& FrameBuffer::operator=(FrameBuffer&& other) noexcept +{ + if (this != &other) { + m_colorTextures.clear(); + DestroyDepthRenderbuffer(); + if (m_id) glDeleteFramebuffers(1, &m_id); + + m_id = other.m_id; + m_width = other.m_width; + m_height = other.m_height; + m_attachments = std::move(other.m_attachments); + m_colorTextures = std::move(other.m_colorTextures); + m_depthRenderbuffer = other.m_depthRenderbuffer; + + other.m_id = 0; + other.m_depthRenderbuffer = 0; + } + return *this; +} + +void FrameBuffer::Bind() const +{ + glBindFramebuffer(GL_FRAMEBUFFER, m_id); + glViewport(0, 0, m_width, m_height); +} + +void FrameBuffer::Unbind() const +{ + glBindFramebuffer(GL_FRAMEBUFFER, 0); +} + +void FrameBuffer::AddColorAttachment(const ColorAttachment& attachment) +{ + m_attachments.push_back(attachment); + + auto texture = CreateColorTexture(m_attachments.back()); + uint32_t index = static_cast(m_colorTextures.size()); + + glBindFramebuffer(GL_FRAMEBUFFER, m_id); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + index, + GL_TEXTURE_2D, texture->GetID(), 0); + m_colorTextures.push_back(std::move(texture)); + + UpdateDrawBuffers(); + + // Create or recreate depth renderbuffer to match + DestroyDepthRenderbuffer(); + CreateDepthRenderbuffer(); + + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + if (status != GL_FRAMEBUFFER_COMPLETE) { + throw std::runtime_error("Framebuffer is not complete"); + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); +} + +void FrameBuffer::Resize(uint32_t width, uint32_t height) +{ + if (m_width == width && m_height == height) return; + + m_width = width; + m_height = height; + + Rebuild(); +} + +const Texture2D& FrameBuffer::GetColorTexture(uint32_t index) const +{ + return *m_colorTextures[index]; +} + +void FrameBuffer::Rebuild() +{ + m_colorTextures.clear(); + DestroyDepthRenderbuffer(); + + glBindFramebuffer(GL_FRAMEBUFFER, m_id); + + for (uint32_t i = 0; i < m_attachments.size(); ++i) { + auto texture = CreateColorTexture(m_attachments[i]); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + i, + GL_TEXTURE_2D, texture->GetID(), 0); + m_colorTextures.push_back(std::move(texture)); + } + + UpdateDrawBuffers(); + CreateDepthRenderbuffer(); + + GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); + if (status != GL_FRAMEBUFFER_COMPLETE) { + throw std::runtime_error("Framebuffer is not complete"); + } + + glBindFramebuffer(GL_FRAMEBUFFER, 0); +} + +std::unique_ptr FrameBuffer::CreateColorTexture(const ColorAttachment& attachment) const +{ + auto tex = std::make_unique(); + tex->m_width = m_width; + tex->m_height = m_height; + tex->Bind(); + tex->LoadData(attachment.format, nullptr); + tex->SetFilter(attachment.minFilter, attachment.magFilter); + tex->SetWrap(attachment.wrapS, attachment.wrapT); + tex->Unbind(); + return tex; +} + +void FrameBuffer::CreateDepthRenderbuffer() +{ + glGenRenderbuffers(1, &m_depthRenderbuffer); + glBindRenderbuffer(GL_RENDERBUFFER, m_depthRenderbuffer); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8, m_width, m_height); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, + GL_RENDERBUFFER, m_depthRenderbuffer); +} + +void FrameBuffer::DestroyDepthRenderbuffer() +{ + if (m_depthRenderbuffer) { + glDeleteRenderbuffers(1, &m_depthRenderbuffer); + m_depthRenderbuffer = 0; + } +} + +void FrameBuffer::UpdateDrawBuffers() const +{ + std::vector drawBuffers(m_colorTextures.size()); + for (uint32_t i = 0; i < drawBuffers.size(); ++i) { + drawBuffers[i] = GL_COLOR_ATTACHMENT0 + i; + } + glDrawBuffers(static_cast(drawBuffers.size()), drawBuffers.data()); +} diff --git a/src/framebuffer.h b/src/framebuffer.h new file mode 100644 index 0000000..f0add41 --- /dev/null +++ b/src/framebuffer.h @@ -0,0 +1,52 @@ +#pragma once + +#include +#include +#include + +#include "gpu.hpp" +#include "texture.h" + +struct ColorAttachment { + TextureFormatType format = TextureFormatType::RGBA8; + TextureFilter minFilter = TextureFilter::Linear; + TextureFilter magFilter = TextureFilter::Linear; + TextureWrap wrapS = TextureWrap::ClampToEdge; + TextureWrap wrapT = TextureWrap::ClampToEdge; +}; + +class FrameBuffer : public IGPUObject { +public: + FrameBuffer(uint32_t width, uint32_t height); + ~FrameBuffer(); + + FrameBuffer(const FrameBuffer&) = delete; + FrameBuffer& operator=(const FrameBuffer&) = delete; + FrameBuffer(FrameBuffer&& other) noexcept; + FrameBuffer& operator=(FrameBuffer&& other) noexcept; + + void Bind() const override; + void Unbind() const override; + + void AddColorAttachment(const ColorAttachment& attachment = {}); + void Resize(uint32_t width, uint32_t height); + + const Texture2D& GetColorTexture(uint32_t index) const; + uint32_t GetColorAttachmentCount() const { return static_cast(m_colorTextures.size()); } + + uint32_t GetWidth() const { return m_width; } + uint32_t GetHeight() const { return m_height; } + +private: + uint32_t m_width; + uint32_t m_height; + std::vector m_attachments; + std::vector> m_colorTextures; + GLuint m_depthRenderbuffer = 0; + + void Rebuild(); + std::unique_ptr CreateColorTexture(const ColorAttachment& attachment) const; + void CreateDepthRenderbuffer(); + void DestroyDepthRenderbuffer(); + void UpdateDrawBuffers() const; +}; diff --git a/src/fx_vertex.glsl.h b/src/fx_vertex.glsl.h new file mode 100644 index 0000000..251b521 --- /dev/null +++ b/src/fx_vertex.glsl.h @@ -0,0 +1,14 @@ +R"(#version 460 core +out vec2 vPosition; + +vec2 coords[] = vec2[]( + vec2(-1.0, -1.0), + vec2( 1.0, -1.0), + vec2(-1.0, 1.0), + vec2( 1.0, 1.0) +); + +void main() { + vPosition = coords[gl_VertexID]; + gl_Position = vec4(vPosition, 0.0, 1.0); +})" \ No newline at end of file diff --git a/src/globals.h b/src/globals.h new file mode 100644 index 0000000..242f20a --- /dev/null +++ b/src/globals.h @@ -0,0 +1,12 @@ +#pragma once + +#include "tmath.hpp" +#include +#include + +// Some globals that are passed to the Effects as uniforms +extern float g_Time; +extern Vector4 g_Mouse; // x, y position, z = left button, w = right button +extern std::vector g_Displays; // x, y, w, h +extern Vector2 g_DesktopSize; // width, height +extern std::string g_ScriptDir; // directory containing the loaded script diff --git a/src/gpu.hpp b/src/gpu.hpp new file mode 100644 index 0000000..ed95278 --- /dev/null +++ b/src/gpu.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "glad/gl.h" +#include + +template +requires std::is_integral_v +class IGPUObject { +public: + virtual ~IGPUObject() = default; + + virtual void Bind() const = 0; + virtual void Unbind() const = 0; + + T GetID() const { return m_id; } + +protected: + T m_id; +}; diff --git a/src/lua.cpp b/src/lua.cpp new file mode 100644 index 0000000..6c3d631 --- /dev/null +++ b/src/lua.cpp @@ -0,0 +1,450 @@ +#include "lua.h" + +#include + +#include "tmath.hpp" +#include "texture.h" +#include "framebuffer.h" +#include "effect.h" +#include "opengl.h" +#include "globals.h" + +static void RegisterTMath(sol::state& lua) { + // ── Free functions ────────────────────────────────────────────────── + lua.set_function("radians", &radians); + lua.set_function("degrees", °rees); + lua.set_function("clamp", &clamp); + lua.set_function("lerp", static_cast(&lerp)); + + // ── Vector2 ───────────────────────────────────────────────────────── + auto vec2 = lua.new_usertype("Vector2", + sol::constructors(), + "x", &Vector2::x, + "y", &Vector2::y, + "dot", &Vector2::dot, + "cross", &Vector2::cross, + "length", &Vector2::length, + "lengthSquared", &Vector2::lengthSquared, + "normalized", &Vector2::normalized, + "distance", &Vector2::distance, + "lerp", &Vector2::lerp, + "reflect", &Vector2::reflect, + sol::meta_function::unary_minus, sol::resolve(&Vector2::operator-), + sol::meta_function::addition, sol::resolve(&Vector2::operator+), + sol::meta_function::subtraction, sol::resolve(&Vector2::operator-), + sol::meta_function::multiplication, sol::overload( + sol::resolve(&Vector2::operator*), + sol::resolve(&Vector2::operator*) + ), + sol::meta_function::division, sol::overload( + sol::resolve(&Vector2::operator/), + sol::resolve(&Vector2::operator/) + ), + sol::meta_function::equal_to, sol::resolve(&Vector2::operator==), + sol::meta_function::to_string, [](const Vector2& v) { + return "Vector2(" + std::to_string(v.x) + ", " + std::to_string(v.y) + ")"; + } + ); + + // ── Vector3 ───────────────────────────────────────────────────────── + auto vec3 = lua.new_usertype("Vector3", + sol::constructors(), + "x", &Vector3::x, + "y", &Vector3::y, + "z", &Vector3::z, + "toVector2", &Vector3::toVector2, + "dot", &Vector3::dot, + "cross", &Vector3::cross, + "lerp", &Vector3::lerp, + "length", &Vector3::length, + "lengthSquared", &Vector3::lengthSquared, + "normalized", &Vector3::normalized, + "distance", &Vector3::distance, + "reflect", &Vector3::reflect, + "refract", &Vector3::refract, + sol::meta_function::unary_minus, sol::resolve(&Vector3::operator-), + sol::meta_function::addition, sol::resolve(&Vector3::operator+), + sol::meta_function::subtraction, sol::resolve(&Vector3::operator-), + sol::meta_function::multiplication, sol::overload( + sol::resolve(&Vector3::operator*), + sol::resolve(&Vector3::operator*) + ), + sol::meta_function::division, sol::overload( + sol::resolve(&Vector3::operator/), + sol::resolve(&Vector3::operator/) + ), + sol::meta_function::equal_to, sol::resolve(&Vector3::operator==), + sol::meta_function::to_string, [](const Vector3& v) { + return "Vector3(" + std::to_string(v.x) + ", " + std::to_string(v.y) + ", " + std::to_string(v.z) + ")"; + } + ); + + // ── Vector4 ───────────────────────────────────────────────────────── + auto vec4 = lua.new_usertype("Vector4", + sol::constructors(), + "x", &Vector4::x, + "y", &Vector4::y, + "z", &Vector4::z, + "w", &Vector4::w, + "toVector2", &Vector4::toVector2, + "toVector3", &Vector4::toVector3, + "dot", &Vector4::dot, + "length", &Vector4::length, + "lengthSquared", &Vector4::lengthSquared, + "normalized", &Vector4::normalized, + "lerp", &Vector4::lerp, + sol::meta_function::unary_minus, sol::resolve(&Vector4::operator-), + sol::meta_function::addition, sol::resolve(&Vector4::operator+), + sol::meta_function::subtraction, sol::resolve(&Vector4::operator-), + sol::meta_function::multiplication, sol::overload( + sol::resolve(&Vector4::operator*), + sol::resolve(&Vector4::operator*) + ), + sol::meta_function::division, sol::overload( + sol::resolve(&Vector4::operator/), + sol::resolve(&Vector4::operator/) + ), + sol::meta_function::equal_to, sol::resolve(&Vector4::operator==), + sol::meta_function::to_string, [](const Vector4& v) { + return "Vector4(" + std::to_string(v.x) + ", " + std::to_string(v.y) + ", " + std::to_string(v.z) + ", " + std::to_string(v.w) + ")"; + } + ); + + // ── Matrix4 ───────────────────────────────────────────────────────── + auto mat4 = lua.new_usertype("Matrix4", + sol::constructors(), + "identity", sol::var(Matrix4::identity()), + "translation", &Matrix4::translation, + "scale", &Matrix4::scale, + "uniformScale", &Matrix4::uniformScale, + "rotationX", &Matrix4::rotationX, + "rotationY", &Matrix4::rotationY, + "rotationZ", &Matrix4::rotationZ, + "angleAxis", &Matrix4::angleAxis, + "ortho", &Matrix4::ortho, + "perspective", &Matrix4::perspective, + "lookAt", &Matrix4::lookAt, + "transposed", &Matrix4::transposed, + "determinant", &Matrix4::determinant, + "inverse", &Matrix4::inverse, + sol::meta_function::multiplication, sol::overload( + sol::resolve(&Matrix4::operator*), + sol::resolve(&Matrix4::operator*), + sol::resolve(&Matrix4::operator*) + ), + sol::meta_function::to_string, [](const Matrix4& m) { + std::string s = "Matrix4(\n"; + for (int i = 0; i < 4; i++) { + s += " " + std::to_string(m[i].x) + ", " + std::to_string(m[i].y) + ", " + + std::to_string(m[i].z) + ", " + std::to_string(m[i].w) + "\n"; + } + s += ")"; + return s; + } + ); + + // ── Quaternion ────────────────────────────────────────────────────── + auto quat = lua.new_usertype("Quaternion", + sol::constructors(), + "x", &Quaternion::x, + "y", &Quaternion::y, + "z", &Quaternion::z, + "w", &Quaternion::w, + "axisAngle", &Quaternion::axisAngle, + "fromEuler", &Quaternion::fromEuler, + "toEuler", &Quaternion::toEuler, + "fromMatrix", &Quaternion::fromMatrix, + "toVector2", &Quaternion::toVector2, + "toVector3", &Quaternion::toVector3, + "toVector4", &Quaternion::toVector4, + "conjugated", &Quaternion::conjugated, + "inversed", &Quaternion::inversed, + "dot", &Quaternion::dot, + "length", &Quaternion::length, + "lengthSquared", &Quaternion::lengthSquared, + "normalized", &Quaternion::normalized, + "rotate", &Quaternion::rotate, + "toMatrix4", &Quaternion::toMatrix4, + "nLerp", &Quaternion::nLerp, + "sLerp", &Quaternion::sLerp, + sol::meta_function::unary_minus, sol::resolve(&Quaternion::operator-), + sol::meta_function::multiplication, sol::overload( + sol::resolve(&Quaternion::operator*), + sol::resolve(&Quaternion::operator*), + sol::resolve(&Quaternion::operator*) + ), + sol::meta_function::addition, sol::resolve(&Quaternion::operator+), + sol::meta_function::subtraction, sol::resolve(&Quaternion::operator-), + sol::meta_function::equal_to, sol::resolve(&Quaternion::operator==), + sol::meta_function::to_string, [](const Quaternion& q) { + return "Quaternion(" + std::to_string(q.x) + ", " + std::to_string(q.y) + ", " + std::to_string(q.z) + ", " + std::to_string(q.w) + ")"; + } + ); + + // ── Constants ─────────────────────────────────────────────────────── + auto consts_table = lua.create_named_table("consts"); + consts_table["Pi"] = consts::Pi; + consts_table["InvPi"] = consts::InvPi; + consts_table["InvTwoPi"] = consts::InvTwoPi; + consts_table["HalfPi"] = consts::HalfPi; + consts_table["QuarPi"] = consts::QuarPi; + consts_table["TwoPi"] = consts::TwoPi; + consts_table["Epsilon"] = consts::Epsilon; + consts_table["E"] = consts::E; +} + +static void RegisterTexture(sol::state& lua) { + // ── Enums ─────────────────────────────────────────────────────────── + lua.new_enum("TextureFormatType", { + { "R8", TextureFormatType::R8 }, + { "RG8", TextureFormatType::RG8 }, + { "RGB8", TextureFormatType::RGB8 }, + { "RGBA8", TextureFormatType::RGBA8 }, + { "R16F", TextureFormatType::R16F }, + { "RG16F", TextureFormatType::RG16F }, + { "RGB16F", TextureFormatType::RGB16F }, + { "RGBA16F", TextureFormatType::RGBA16F }, + { "R32F", TextureFormatType::R32F }, + { "RG32F", TextureFormatType::RG32F }, + { "RGB32F", TextureFormatType::RGB32F }, + { "RGBA32F", TextureFormatType::RGBA32F } + }); + + lua.new_enum("TextureFilter", { + { "Nearest", TextureFilter::Nearest }, + { "Linear", TextureFilter::Linear }, + { "NearestMipmapNearest", TextureFilter::NearestMipmapNearest }, + { "LinearMipmapNearest", TextureFilter::LinearMipmapNearest }, + { "NearestMipmapLinear", TextureFilter::NearestMipmapLinear }, + { "LinearMipmapLinear", TextureFilter::LinearMipmapLinear } + }); + + lua.new_enum("TextureWrap", { + { "Repeat", TextureWrap::Repeat }, + { "MirroredRepeat", TextureWrap::MirroredRepeat }, + { "ClampToEdge", TextureWrap::ClampToEdge }, + { "ClampToBorder", TextureWrap::ClampToBorder } + }); + + // ── Texture1D ─────────────────────────────────────────────────────── + lua.new_usertype("Texture1D", + sol::no_constructor, + sol::base_classes, sol::bases(), + "Bind", &Texture1D::Bind, + "Unbind", &Texture1D::Unbind, + "GenerateMipmaps", &Texture1D::GenerateMipmaps, + "SetFilter", &Texture1D::SetFilter, + "SetWrap", sol::overload( + sol::resolve(&Texture1D::SetWrap), + sol::resolve(&Texture1D::SetWrap) + ), + "GetWidth", &Texture1D::GetWidth, + "GetID", &Texture1D::GetID + ); + + // ── Texture2D ─────────────────────────────────────────────────────── + lua.new_usertype("Texture2D", + sol::no_constructor, + sol::base_classes, sol::bases(), + "Bind", &Texture2D::Bind, + "Unbind", &Texture2D::Unbind, + "GenerateMipmaps", &Texture2D::GenerateMipmaps, + "SetFilter", &Texture2D::SetFilter, + "SetWrap", sol::overload( + sol::resolve(&Texture2D::SetWrap), + sol::resolve(&Texture2D::SetWrap) + ), + "GetWidth", &Texture2D::GetWidth, + "GetHeight", &Texture2D::GetHeight, + "GetID", &Texture2D::GetID + ); + + // ── Texture3D ─────────────────────────────────────────────────────── + lua.new_usertype("Texture3D", + sol::no_constructor, + sol::base_classes, sol::bases(), + "Bind", &Texture3D::Bind, + "Unbind", &Texture3D::Unbind, + "GenerateMipmaps", &Texture3D::GenerateMipmaps, + "SetFilter", &Texture3D::SetFilter, + "SetWrap", sol::overload( + sol::resolve(&Texture3D::SetWrap), + sol::resolve(&Texture3D::SetWrap) + ), + "GetWidth", &Texture3D::GetWidth, + "GetHeight", &Texture3D::GetHeight, + "GetDepth", &Texture3D::GetDepth, + "GetID", &Texture3D::GetID + ); + + // ── TextureCubeMap ────────────────────────────────────────────────── + lua.new_enum("CubeMapFace", { + { "PositiveX", TextureCubeMap::Face::PositiveX }, + { "NegativeX", TextureCubeMap::Face::NegativeX }, + { "PositiveY", TextureCubeMap::Face::PositiveY }, + { "NegativeY", TextureCubeMap::Face::NegativeY }, + { "PositiveZ", TextureCubeMap::Face::PositiveZ }, + { "NegativeZ", TextureCubeMap::Face::NegativeZ } + }); + + lua.new_usertype("TextureCubeMap", + sol::no_constructor, + sol::base_classes, sol::bases(), + "Bind", &TextureCubeMap::Bind, + "Unbind", &TextureCubeMap::Unbind, + "GenerateMipmaps", &TextureCubeMap::GenerateMipmaps, + "SetFilter", &TextureCubeMap::SetFilter, + "SetWrap", sol::overload( + sol::resolve(&TextureCubeMap::SetWrap), + sol::resolve(&TextureCubeMap::SetWrap) + ), + "LoadFaceDataFromFile", &TextureCubeMap::LoadFaceDataFromFile, + "GetSize", &TextureCubeMap::GetSize, + "GetID", &TextureCubeMap::GetID + ); + + // ── Texture static factories ──────────────────────────────────────── + auto tex = lua.create_named_table("Texture"); + tex["CreateTexture1D"] = static_cast(*)(uint32_t, TextureFormatType)>(&Texture::CreateTexture); + tex["CreateTexture2D"] = static_cast(*)(uint32_t, uint32_t, TextureFormatType)>(&Texture::CreateTexture); + tex["CreateTexture3D"] = static_cast(*)(uint32_t, uint32_t, uint32_t, TextureFormatType)>(&Texture::CreateTexture); + tex["CreateCubeMap"] = &Texture::CreateCubeMap; + tex["LoadFromFile"] = [](const std::string& filepath) -> std::unique_ptr { + std::filesystem::path p(filepath); + if (p.is_relative() && !g_ScriptDir.empty()) { + p = std::filesystem::path(g_ScriptDir) / p; + } + return Texture::LoadFromFile(p.string()); + }; +} + +static void RegisterFrameBuffer(sol::state& lua) { + // ── ColorAttachment ───────────────────────────────────────────────── + auto ca = lua.new_usertype("ColorAttachment", + sol::constructors(), + "format", &ColorAttachment::format, + "minFilter", &ColorAttachment::minFilter, + "magFilter", &ColorAttachment::magFilter, + "wrapS", &ColorAttachment::wrapS, + "wrapT", &ColorAttachment::wrapT + ); + + // ── FrameBuffer ───────────────────────────────────────────────────── + auto fb = lua.new_usertype("FrameBuffer", + sol::constructors(), + "Bind", &FrameBuffer::Bind, + "Unbind", &FrameBuffer::Unbind, + "AddColorAttachment", &FrameBuffer::AddColorAttachment, + "Resize", &FrameBuffer::Resize, + "GetColorTexture", &FrameBuffer::GetColorTexture, + "GetColorAttachmentCount", &FrameBuffer::GetColorAttachmentCount, + "GetWidth", &FrameBuffer::GetWidth, + "GetHeight", &FrameBuffer::GetHeight + ); +} + +static void RegisterEffect(sol::state& lua) { + auto fx = lua.new_usertype("Effect", + sol::constructors(), + "Use", &Effect::Use, + "SetSampler", &Effect::SetSampler, + "SetTexture", &Effect::SetTexture, + "SetFloat", &Effect::SetFloat, + "SetVector2", &Effect::SetVector2, + "SetVector3", &Effect::SetVector3, + "SetVector4", &Effect::SetVector4, + "SetMatrix4", &Effect::SetMatrix4, + "Render", &Effect::Render + ); +} + +static void RegisterOpenGL(sol::state& lua) { + auto gl = lua.create_named_table("gl"); + + // ── Clear ─────────────────────────────────────────────────────────── + gl["Clear"] = sol::overload( + static_cast(&OpenGL::Clear), + static_cast(&OpenGL::Clear), + static_cast(&OpenGL::Clear) + ); + gl["ClearDepth"] = &OpenGL::ClearDepth; + + // ── Viewport ──────────────────────────────────────────────────────── + gl["SetViewport"] = &OpenGL::SetViewport; + + // ── Blending ──────────────────────────────────────────────────────── + gl["EnableBlending"] = &OpenGL::EnableBlending; + gl["DisableBlending"] = &OpenGL::DisableBlending; + gl["SetBlendFunc"] = &OpenGL::SetBlendFunc; + + // ── Depth ─────────────────────────────────────────────────────────── + gl["EnableDepthTest"] = &OpenGL::EnableDepthTest; + gl["DisableDepthTest"] = &OpenGL::DisableDepthTest; + gl["SetDepthFunc"] = &OpenGL::SetDepthFunc; + gl["SetDepthMask"] = &OpenGL::SetDepthMask; + + // ── Culling ───────────────────────────────────────────────────────── + gl["EnableCullFace"] = &OpenGL::EnableCullFace; + gl["DisableCullFace"] = &OpenGL::DisableCullFace; + gl["SetCullFace"] = &OpenGL::SetCullFace; + + // ── Scissor ───────────────────────────────────────────────────────── + gl["EnableScissorTest"] = &OpenGL::EnableScissorTest; + gl["DisableScissorTest"] = &OpenGL::DisableScissorTest; + gl["SetScissor"] = &OpenGL::SetScissor; + + // ── Wireframe ─────────────────────────────────────────────────────── + gl["SetWireframe"] = &OpenGL::SetWireframe; + + // ── Color Mask ────────────────────────────────────────────────────── + gl["SetColorMask"] = &OpenGL::SetColorMask; + + // ── Textures ───────────────────────────────────────────────────────── + gl["ActiveTexture"] = &OpenGL::ActiveTexture; + + // ── GL enum constants ─────────────────────────────────────────────── + auto glEnum = lua.create_named_table("GL"); + + // Blend factors + glEnum["ZERO"] = GL_ZERO; + glEnum["ONE"] = GL_ONE; + glEnum["SRC_COLOR"] = GL_SRC_COLOR; + glEnum["ONE_MINUS_SRC_COLOR"] = GL_ONE_MINUS_SRC_COLOR; + glEnum["DST_COLOR"] = GL_DST_COLOR; + glEnum["ONE_MINUS_DST_COLOR"] = GL_ONE_MINUS_DST_COLOR; + glEnum["SRC_ALPHA"] = GL_SRC_ALPHA; + glEnum["ONE_MINUS_SRC_ALPHA"] = GL_ONE_MINUS_SRC_ALPHA; + glEnum["DST_ALPHA"] = GL_DST_ALPHA; + glEnum["ONE_MINUS_DST_ALPHA"] = GL_ONE_MINUS_DST_ALPHA; + + // Depth functions + glEnum["NEVER"] = GL_NEVER; + glEnum["LESS"] = GL_LESS; + glEnum["EQUAL"] = GL_EQUAL; + glEnum["LEQUAL"] = GL_LEQUAL; + glEnum["GREATER"] = GL_GREATER; + glEnum["NOTEQUAL"] = GL_NOTEQUAL; + glEnum["GEQUAL"] = GL_GEQUAL; + glEnum["ALWAYS"] = GL_ALWAYS; + + // Cull face + glEnum["FRONT"] = GL_FRONT; + glEnum["BACK"] = GL_BACK; + glEnum["FRONT_AND_BACK"] = GL_FRONT_AND_BACK; +} + +void RegisterLuaBindings(sol::state& lua) { + lua.open_libraries( + sol::lib::base, + sol::lib::math, + sol::lib::string, + sol::lib::table, + sol::lib::package + ); + + RegisterTMath(lua); + RegisterTexture(lua); + RegisterFrameBuffer(lua); + RegisterEffect(lua); + RegisterOpenGL(lua); +} diff --git a/src/lua.h b/src/lua.h new file mode 100644 index 0000000..99b23b2 --- /dev/null +++ b/src/lua.h @@ -0,0 +1,5 @@ +#pragma once + +#include + +void RegisterLuaBindings(sol::state& lua); diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..bf76239 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,217 @@ +#include +#include +#include "glad/gl.h" + +#include +#include + +#include +#include +#include + +#include +#include + +#include + +#include "lua.h" +#include "script.h" +#include "globals.h" + +// definition of globals +float g_Time = 0.0f; +Vector4 g_Mouse = Vector4(0.0f, 0.0f, 0.0f, 0.0f); +std::vector g_Displays = {}; +Vector2 g_DesktopSize = Vector2(0.0f, 0.0f); +std::string g_ScriptDir; + +int main(int argc, char* argv[]) +{ + // we need a wallpaper file (.lua) to be able to run + if (argc < 2) { + SDL_Log("Usage: %s ", argv[0]); + return EXIT_FAILURE; + } + + if (!SDL_Init(SDL_INIT_VIDEO)) { + SDL_Log("SDL_Init failed: %s", SDL_GetError()); + return EXIT_FAILURE; + } + + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 6); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); + + // Compute bounding box spanning all monitors + int numDisplays = 0; + SDL_DisplayID* displays = SDL_GetDisplays(&numDisplays); + int minX = INT_MAX, minY = INT_MAX, maxX = INT_MIN, maxY = INT_MIN; + for (int i = 0; i < numDisplays; ++i) { + SDL_Rect bounds; + if (SDL_GetDisplayBounds(displays[i], &bounds)) { + minX = std::min(minX, bounds.x); + minY = std::min(minY, bounds.y); + maxX = std::max(maxX, bounds.x + bounds.w); + maxY = std::max(maxY, bounds.y + bounds.h); + } + + g_Displays.push_back(Vector4( + static_cast(bounds.x), + static_cast(bounds.y), + static_cast(bounds.w), + static_cast(bounds.h) + )); + } + + g_DesktopSize.x = static_cast(maxX - minX); + g_DesktopSize.y = static_cast(maxY - minY); + + SDL_free(displays); + SDL_Log("Spanning %d display(s): %dx%d at (%d,%d)", + numDisplays, maxX - minX, maxY - minY, minX, minY); + + SDL_PropertiesID props = SDL_CreateProperties(); + SDL_SetStringProperty(props, SDL_PROP_WINDOW_CREATE_TITLE_STRING, "live-wallpaper"); + SDL_SetNumberProperty(props, SDL_PROP_WINDOW_CREATE_X_NUMBER, minX); + SDL_SetNumberProperty(props, SDL_PROP_WINDOW_CREATE_Y_NUMBER, minY); + SDL_SetNumberProperty(props, SDL_PROP_WINDOW_CREATE_WIDTH_NUMBER, maxX - minX); + SDL_SetNumberProperty(props, SDL_PROP_WINDOW_CREATE_HEIGHT_NUMBER, maxY - minY); + SDL_SetBooleanProperty(props, SDL_PROP_WINDOW_CREATE_BORDERLESS_BOOLEAN, true); + SDL_SetBooleanProperty(props, SDL_PROP_WINDOW_CREATE_OPENGL_BOOLEAN, true); + + SDL_SetHint(SDL_HINT_X11_WINDOW_TYPE, "_NET_WM_WINDOW_TYPE_DESKTOP"); + + SDL_Window* window = SDL_CreateWindowWithProperties(props); + if (!window) { + SDL_Log("SDL_CreateWindow failed: %s", SDL_GetError()); + SDL_Quit(); + return EXIT_FAILURE; + } + + SDL_GLContext glContext = SDL_GL_CreateContext(window); + if (!glContext) { + SDL_Log("SDL_GL_CreateContext failed: %s", SDL_GetError()); + SDL_DestroyWindow(window); + SDL_Quit(); + return EXIT_FAILURE; + } + + SDL_GL_SetSwapInterval(1); // vsync + + // Load GLAD + if (!gladLoadGL((GLADloadfunc)SDL_GL_GetProcAddress)) { + SDL_Log("Failed to initialize GLAD"); + SDL_GL_DestroyContext(glContext); + SDL_DestroyWindow(window); + SDL_Quit(); + return EXIT_FAILURE; + } + + SDL_SetWindowParent(window, NULL); + SDL_SetWindowFocusable(window, false); + + // Get the native X11 handles from SDL3 properties + SDL_PropertiesID windowProps = SDL_GetWindowProperties(window); + Display* x11Display = (Display*)SDL_GetPointerProperty(windowProps, SDL_PROP_WINDOW_X11_DISPLAY_POINTER, NULL); + Window x11Window = (Window)SDL_GetNumberProperty(windowProps, SDL_PROP_WINDOW_X11_WINDOW_NUMBER, 0); + + if (x11Display && x11Window) { + // Make the window completely click-through + Region region = XCreateRegion(); + XShapeCombineRegion(x11Display, x11Window, ShapeInput, 0, 0, region, ShapeSet); + XDestroyRegion(region); + + // Force window below everything (including the file manager desktop) + XLowerWindow(x11Display, x11Window); + + // Set _NET_WM_STATE_BELOW so the WM keeps it at the bottom + Atom wmState = XInternAtom(x11Display, "_NET_WM_STATE", False); + Atom wmStateBelow = XInternAtom(x11Display, "_NET_WM_STATE_BELOW", False); + XChangeProperty(x11Display, x11Window, wmState, XA_ATOM, 32, + PropModeAppend, (unsigned char*)&wmStateBelow, 1); + + XFlush(x11Display); + } + + SDL_Log("OpenGL Vendor: %s", glGetString(GL_VENDOR)); + SDL_Log("OpenGL Renderer: %s", glGetString(GL_RENDERER)); + SDL_Log("OpenGL Version: %s", glGetString(GL_VERSION)); + + // OpenGL configuration + glDisable(GL_CULL_FACE); + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); + + // Script setup + g_ScriptDir = std::filesystem::absolute(std::filesystem::path(argv[1]).parent_path()).string(); + + sol::state lua; + RegisterLuaBindings(lua); + + Script script(lua, argv[1]); + script.Create(); + + double lastTime = SDL_GetTicks() / 1000.0; + double accumulatedTime = 0.0; + const double fixedTimeStep = 1.0 / 60.0; + + bool running = true; + while (running) { + double currentTime = SDL_GetTicks() / 1000.0; + double deltaTime = currentTime - lastTime; + lastTime = currentTime; + accumulatedTime += deltaTime; + + SDL_Event event; + while (SDL_PollEvent(&event)) { + if (event.type == SDL_EVENT_QUIT) { + running = false; + } + + // Mouse position and button state + switch (event.type) { + case SDL_EVENT_MOUSE_MOTION: + g_Mouse.x = static_cast(event.motion.x); + g_Mouse.y = static_cast(event.motion.y); + break; + case SDL_EVENT_MOUSE_BUTTON_DOWN: + case SDL_EVENT_MOUSE_BUTTON_UP: + if (event.button.button == SDL_BUTTON_LEFT) { + g_Mouse.z = (event.type == SDL_EVENT_MOUSE_BUTTON_DOWN) ? 1.0f : 0.0f; + } else if (event.button.button == SDL_BUTTON_RIGHT) { + g_Mouse.w = (event.type == SDL_EVENT_MOUSE_BUTTON_DOWN) ? 1.0f : 0.0f; + } + break; + default: + break; + } + } + + bool canRender = false; + while (accumulatedTime >= fixedTimeStep) { + script.Update(static_cast(fixedTimeStep)); + accumulatedTime -= fixedTimeStep; + canRender = true; + + g_Time += static_cast(fixedTimeStep); + } + + if (canRender) { + script.Render(); + SDL_GL_SwapWindow(window); + } else { + SDL_Delay(16); // Sleep briefly to avoid busy-waiting + } + } + + script.Destroy(); + + SDL_GL_DestroyContext(glContext); + SDL_DestroyWindow(window); + SDL_Quit(); + return EXIT_SUCCESS; +} diff --git a/src/opengl.cpp b/src/opengl.cpp new file mode 100644 index 0000000..07f2acb --- /dev/null +++ b/src/opengl.cpp @@ -0,0 +1,100 @@ +#include "opengl.h" + +namespace OpenGL { + +// ── Clear ─────────────────────────────────────────────────────────────── +void Clear(float r, float g, float b, float a) { + glClearColor(r, g, b, a); + glClear(GL_COLOR_BUFFER_BIT); +} + +void Clear(const Vector3& color) { + Clear(color.x, color.y, color.z, 1.0f); +} + +void Clear(const Vector4& color) { + Clear(color.x, color.y, color.z, color.w); +} + +void ClearDepth(float depth) { + glClearDepth(depth); + glClear(GL_DEPTH_BUFFER_BIT); +} + +// ── Viewport ──────────────────────────────────────────────────────────── +void SetViewport(int x, int y, int width, int height) { + glViewport(x, y, width, height); +} + +// ── Blending ──────────────────────────────────────────────────────────── +void EnableBlending() { + glEnable(GL_BLEND); +} + +void DisableBlending() { + glDisable(GL_BLEND); +} + +void SetBlendFunc(GLenum src, GLenum dst) { + glBlendFunc(src, dst); +} + +// ── Depth ─────────────────────────────────────────────────────────────── +void EnableDepthTest() { + glEnable(GL_DEPTH_TEST); +} + +void DisableDepthTest() { + glDisable(GL_DEPTH_TEST); +} + +void SetDepthFunc(GLenum func) { + glDepthFunc(func); +} + +void SetDepthMask(bool write) { + glDepthMask(write ? GL_TRUE : GL_FALSE); +} + +// ── Culling ───────────────────────────────────────────────────────────── +void EnableCullFace() { + glEnable(GL_CULL_FACE); +} + +void DisableCullFace() { + glDisable(GL_CULL_FACE); +} + +void SetCullFace(GLenum face) { + glCullFace(face); +} + +// ── Scissor ───────────────────────────────────────────────────────────── +void EnableScissorTest() { + glEnable(GL_SCISSOR_TEST); +} + +void DisableScissorTest() { + glDisable(GL_SCISSOR_TEST); +} + +void SetScissor(int x, int y, int width, int height) { + glScissor(x, y, width, height); +} + +// ── Wireframe ─────────────────────────────────────────────────────────── +void SetWireframe(bool enabled) { + glPolygonMode(GL_FRONT_AND_BACK, enabled ? GL_LINE : GL_FILL); +} + +// ── Color Mask ────────────────────────────────────────────────────────── +void SetColorMask(bool r, bool g, bool b, bool a) { + glColorMask(r, g, b, a); +} + +void ActiveTexture(size_t textureUnit) +{ + glActiveTexture(GL_TEXTURE0 + static_cast(textureUnit)); +} + +} // namespace OpenGL diff --git a/src/opengl.h b/src/opengl.h new file mode 100644 index 0000000..daa1794 --- /dev/null +++ b/src/opengl.h @@ -0,0 +1,47 @@ +#pragma once + +#include "glad/gl.h" +#include "tmath.hpp" + +namespace OpenGL { + +// ── Clear ─────────────────────────────────────────────────────────────── +void Clear(float r, float g, float b, float a = 1.0f); +void Clear(const Vector3& color); +void Clear(const Vector4& color); +void ClearDepth(float depth = 1.0f); + +// ── Viewport ──────────────────────────────────────────────────────────── +void SetViewport(int x, int y, int width, int height); + +// ── Blending ──────────────────────────────────────────────────────────── +void EnableBlending(); +void DisableBlending(); +void SetBlendFunc(GLenum src, GLenum dst); + +// ── Depth ─────────────────────────────────────────────────────────────── +void EnableDepthTest(); +void DisableDepthTest(); +void SetDepthFunc(GLenum func); +void SetDepthMask(bool write); + +// ── Culling ───────────────────────────────────────────────────────────── +void EnableCullFace(); +void DisableCullFace(); +void SetCullFace(GLenum face); + +// ── Scissor ───────────────────────────────────────────────────────────── +void EnableScissorTest(); +void DisableScissorTest(); +void SetScissor(int x, int y, int width, int height); + +// ── Wireframe ─────────────────────────────────────────────────────────── +void SetWireframe(bool enabled); + +// ── Color Mask ────────────────────────────────────────────────────────── +void SetColorMask(bool r, bool g, bool b, bool a); + +// ── Textures ──────────────────────────────────────────────────────────── +void ActiveTexture(size_t textureUnit); + +} // namespace OpenGL diff --git a/src/script.cpp b/src/script.cpp new file mode 100644 index 0000000..ee7fe70 --- /dev/null +++ b/src/script.cpp @@ -0,0 +1,83 @@ +#include "script.h" + +#include + +Script::Script(sol::state& lua, const std::string& filepath) : m_lua(lua) { + auto result = m_lua.safe_script_file(filepath, sol::script_pass_on_error); + if (!result.valid()) { + sol::error err = result; + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to load script '%s': %s", + filepath.c_str(), err.what()); + return; + } + + // Bind lifecycle functions + sol::object createObj = m_lua["_create"]; + if (createObj.is()) { + m_create = createObj.as(); + m_hasCreate = true; + } + + sol::object updateObj = m_lua["_update"]; + if (updateObj.is()) { + m_update = updateObj.as(); + } else { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Script '%s' missing required '_update(dt)' function", + filepath.c_str()); + } + + sol::object renderObj = m_lua["_render"]; + if (renderObj.is()) { + m_render = renderObj.as(); + } else { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Script '%s' missing required '_render' function", + filepath.c_str()); + } + + sol::object destroyObj = m_lua["_destroy"]; + if (destroyObj.is()) { + m_destroy = destroyObj.as(); + m_hasDestroy = true; + } +} + +Script::~Script() { + Destroy(); +} + +void Script::Create() { + if (!m_hasCreate) return; + auto result = m_create(); + if (!result.valid()) { + sol::error err = result; + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "_create error: %s", err.what()); + } +} + +void Script::Update(float dt) { + if (!m_update.valid()) return; + auto result = m_update(dt); + if (!result.valid()) { + sol::error err = result; + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "_update error: %s", err.what()); + } +} + +void Script::Render() { + if (!m_render.valid()) return; + auto result = m_render(); + if (!result.valid()) { + sol::error err = result; + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "_render error: %s", err.what()); + } +} + +void Script::Destroy() { + if (!m_hasDestroy) return; + auto result = m_destroy(); + if (!result.valid()) { + sol::error err = result; + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "_destroy error: %s", err.what()); + } + m_hasDestroy = false; // Prevent double-destroy +} diff --git a/src/script.h b/src/script.h new file mode 100644 index 0000000..d47decd --- /dev/null +++ b/src/script.h @@ -0,0 +1,24 @@ +#pragma once + +#include +#include + +class Script { +public: + Script(sol::state& lua, const std::string& filepath); + ~Script(); + + void Create(); + void Update(float dt); + void Render(); + void Destroy(); + +private: + sol::state& m_lua; + sol::protected_function m_create; + sol::protected_function m_update; + sol::protected_function m_render; + sol::protected_function m_destroy; + bool m_hasCreate = false; + bool m_hasDestroy = false; +}; diff --git a/src/stb.cpp b/src/stb.cpp new file mode 100644 index 0000000..badb3ef --- /dev/null +++ b/src/stb.cpp @@ -0,0 +1,2 @@ +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" \ No newline at end of file diff --git a/src/texture.cpp b/src/texture.cpp new file mode 100644 index 0000000..33b84d4 --- /dev/null +++ b/src/texture.cpp @@ -0,0 +1,253 @@ +#include "texture.h" + +#include "stb_image.h" +#include + +struct TextureFormat { + GLint internalFormat; + GLenum format; + GLenum type; +}; + +// TextureFormatType => TextureFormat mapping +static const TextureFormat textureFormatMap[] = { + { GL_R8, GL_RED, GL_UNSIGNED_BYTE }, // R8 + { GL_RG8, GL_RG, GL_UNSIGNED_BYTE }, // RG8 + { GL_RGB8, GL_RGB, GL_UNSIGNED_BYTE }, // RGB8 + { GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE }, // RGBA8 + { GL_R16F, GL_RED, GL_HALF_FLOAT }, // R16F + { GL_RG16F, GL_RG, GL_HALF_FLOAT }, // RG16F + { GL_RGB16F, GL_RGB, GL_HALF_FLOAT }, // RGB16F + { GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT }, // RGBA16F + { GL_R32F, GL_RED, GL_FLOAT }, // R32F + { GL_RG32F, GL_RG, GL_FLOAT }, // RG32F + { GL_RGB32F, GL_RGB, GL_FLOAT }, // RGB32F + { GL_RGBA32F, GL_RGBA, GL_FLOAT } // RGBA32F +}; + +void Texture::Bind() const +{ + glBindTexture(m_target, m_id); +} + +void Texture::Unbind() const +{ + glBindTexture(m_target, 0); +} + +void Texture::GenerateMipmaps() const +{ + glGenerateMipmap(m_target); +} + +static GLenum ToGLFilter(TextureFilter filter) +{ + switch (filter) { + case TextureFilter::Nearest: return GL_NEAREST; + case TextureFilter::Linear: return GL_LINEAR; + case TextureFilter::NearestMipmapNearest: return GL_NEAREST_MIPMAP_NEAREST; + case TextureFilter::LinearMipmapNearest: return GL_LINEAR_MIPMAP_NEAREST; + case TextureFilter::NearestMipmapLinear: return GL_NEAREST_MIPMAP_LINEAR; + case TextureFilter::LinearMipmapLinear: return GL_LINEAR_MIPMAP_LINEAR; + } + return GL_LINEAR; +} + +static GLenum ToGLWrap(TextureWrap wrap) +{ + switch (wrap) { + case TextureWrap::Repeat: return GL_REPEAT; + case TextureWrap::MirroredRepeat: return GL_MIRRORED_REPEAT; + case TextureWrap::ClampToEdge: return GL_CLAMP_TO_EDGE; + case TextureWrap::ClampToBorder: return GL_CLAMP_TO_BORDER; + } + return GL_REPEAT; +} + +void Texture::SetFilter(TextureFilter min, TextureFilter mag) const +{ + glTexParameteri(m_target, GL_TEXTURE_MIN_FILTER, ToGLFilter(min)); + glTexParameteri(m_target, GL_TEXTURE_MAG_FILTER, ToGLFilter(mag)); +} + +void Texture::SetWrap(TextureWrap s, TextureWrap t) const +{ + glTexParameteri(m_target, GL_TEXTURE_WRAP_S, ToGLWrap(s)); + glTexParameteri(m_target, GL_TEXTURE_WRAP_T, ToGLWrap(t)); +} + +void Texture::SetWrap(TextureWrap s, TextureWrap t, TextureWrap r) const +{ + glTexParameteri(m_target, GL_TEXTURE_WRAP_S, ToGLWrap(s)); + glTexParameteri(m_target, GL_TEXTURE_WRAP_T, ToGLWrap(t)); + glTexParameteri(m_target, GL_TEXTURE_WRAP_R, ToGLWrap(r)); +} + +std::unique_ptr Texture::CreateTexture(uint32_t width, TextureFormatType format) +{ + auto tex = std::make_unique(); + tex->m_width = width; + tex->Bind(); + tex->LoadData(format, nullptr); + tex->Unbind(); + return tex; +} + +std::unique_ptr Texture::CreateTexture(uint32_t width, uint32_t height, TextureFormatType format) +{ + auto tex = std::make_unique(); + tex->m_width = width; + tex->m_height = height; + tex->Bind(); + tex->LoadData(format, nullptr); + tex->Unbind(); + return tex; +} + +std::unique_ptr Texture::CreateTexture(uint32_t width, uint32_t height, uint32_t depth, TextureFormatType format) +{ + auto tex = std::make_unique(); + tex->m_width = width; + tex->m_height = height; + tex->m_depth = depth; + tex->Bind(); + tex->LoadData(format, nullptr); + tex->Unbind(); + return tex; +} + +std::unique_ptr Texture::CreateCubeMap(uint32_t size, TextureFormatType format) +{ + auto tex = std::make_unique(); + tex->m_size = size; + tex->Bind(); + for (int i = 0; i < 6; ++i) { + tex->LoadFaceData(static_cast(i), format, nullptr); + } + tex->Unbind(); + return tex; +} + +std::unique_ptr Texture::LoadFromFile(const std::string &filepath) +{ + int width, height, channels; + stbi_set_flip_vertically_on_load(true); + stbi_uc* data = stbi_load(filepath.c_str(), &width, &height, &channels, 0); + if (!data) { + throw std::runtime_error("Failed to load texture: " + filepath); + } + + TextureFormatType format; + switch (channels) { + case 1: format = TextureFormatType::R8; break; + case 2: format = TextureFormatType::RG8; break; + case 3: format = TextureFormatType::RGB8; break; + case 4: format = TextureFormatType::RGBA8; break; + default: + stbi_image_free(data); + throw std::runtime_error("Unsupported number of channels in texture: " + filepath); + } + + auto tex = CreateTexture(width, height, format); + tex->Bind(); + tex->LoadData(format, data); + tex->Unbind(); + + stbi_image_free(data); + return tex; +} + +Texture::Texture(GLenum target) + : m_target(target) +{ + glGenTextures(1, &m_id); +} + +Texture::~Texture() +{ + if (m_id) { + glDeleteTextures(1, &m_id); + m_id = 0; + } +} + +void TextureCubeMap::LoadFaceData(Face face, TextureFormatType format, const void* data) const +{ + const TextureFormat& fmt = textureFormatMap[static_cast(format)]; + glTexImage2D( + GL_TEXTURE_CUBE_MAP_POSITIVE_X + static_cast(face), + 0, + fmt.internalFormat, + m_size, m_size, 0, + fmt.format, fmt.type, + data + ); +} + +void TextureCubeMap::LoadFaceDataFromFile(Face face, const std::string &filepath) const +{ + int width, height, channels; + stbi_set_flip_vertically_on_load(false); // Cube maps typically expect unflipped images + stbi_uc* data = stbi_load(filepath.c_str(), &width, &height, &channels, 0); + if (!data) { + throw std::runtime_error("Failed to load cube map face texture: " + filepath); + } + + if (width != m_size || height != m_size) { + stbi_image_free(data); + throw std::runtime_error("Cube map face texture size mismatch: " + filepath); + } + + TextureFormatType format; + switch (channels) { + case 1: format = TextureFormatType::R8; break; + case 2: format = TextureFormatType::RG8; break; + case 3: format = TextureFormatType::RGB8; break; + case 4: format = TextureFormatType::RGBA8; break; + default: + stbi_image_free(data); + throw std::runtime_error("Unsupported number of channels in cube map face texture: " + filepath); + } + + LoadFaceData(face, format, data); + stbi_image_free(data); +} + +void Texture1D::LoadData(TextureFormatType format, const void *data) const +{ + const TextureFormat& fmt = textureFormatMap[static_cast(format)]; + glTexImage1D( + m_target, + 0, + fmt.internalFormat, + m_width, 0, + fmt.format, fmt.type, + data + ); +} + +void Texture2D::LoadData(TextureFormatType format, const void *data) const +{ + const TextureFormat& fmt = textureFormatMap[static_cast(format)]; + glTexImage2D( + m_target, + 0, + fmt.internalFormat, + m_width, m_height, 0, + fmt.format, fmt.type, + data + ); +} + +void Texture3D::LoadData(TextureFormatType format, const void *data) const +{ + const TextureFormat& fmt = textureFormatMap[static_cast(format)]; + glTexImage3D( + m_target, + 0, + fmt.internalFormat, + m_width, m_height, m_depth, 0, + fmt.format, fmt.type, + data + ); +} diff --git a/src/texture.h b/src/texture.h new file mode 100644 index 0000000..d3962a8 --- /dev/null +++ b/src/texture.h @@ -0,0 +1,165 @@ +#pragma once + +#include +#include +#include +#include + +#include "gpu.hpp" + +enum class TextureFormatType { + R8 = 0, + RG8, + RGB8, + RGBA8, + R16F, + RG16F, + RGB16F, + RGBA16F, + R32F, + RG32F, + RGB32F, + RGBA32F +}; + +enum class TextureFilter { + Nearest, + Linear, + NearestMipmapNearest, + LinearMipmapNearest, + NearestMipmapLinear, + LinearMipmapLinear +}; + +enum class TextureWrap { + Repeat, + MirroredRepeat, + ClampToEdge, + ClampToBorder +}; + +// Forward-declare texture types +class Texture1D; +class Texture2D; +class Texture3D; +class TextureCubeMap; + +// RAII wrapper base class for OpenGL textures +class Texture : public IGPUObject { +public: + Texture(GLenum target); + virtual ~Texture(); + + void Bind() const override; + void Unbind() const override; + void GenerateMipmaps() const; + + void SetFilter(TextureFilter min, TextureFilter mag) const; + void SetWrap(TextureWrap s, TextureWrap t) const; + void SetWrap(TextureWrap s, TextureWrap t, TextureWrap r) const; + + static std::unique_ptr CreateTexture(uint32_t width, TextureFormatType format); + static std::unique_ptr CreateTexture(uint32_t width, uint32_t height, TextureFormatType format); + static std::unique_ptr CreateTexture(uint32_t width, uint32_t height, uint32_t depth, TextureFormatType format); + static std::unique_ptr CreateCubeMap(uint32_t size, TextureFormatType format); + static std::unique_ptr LoadFromFile(const std::string& filepath); + +protected: + GLenum m_target; + + virtual void LoadData( + TextureFormatType format, + const void* data + ) const = 0; +}; + +class Texture1D : public Texture { + friend class Texture; +public: + Texture1D() : Texture(GL_TEXTURE_1D) {} + + uint32_t GetWidth() const { return m_width; } + +protected: + uint32_t m_width; + + void LoadData( + TextureFormatType format, + const void* data + ) const override; +}; + +class Texture2D : public Texture { + friend class Texture; + friend class FrameBuffer; +public: + Texture2D() : Texture(GL_TEXTURE_2D) {} + + uint32_t GetWidth() const { return m_width; } + uint32_t GetHeight() const { return m_height; } + +protected: + uint32_t m_width; + uint32_t m_height; + + void LoadData( + TextureFormatType format, + const void* data + ) const override; +}; + +class Texture3D : public Texture { + friend class Texture; +public: + Texture3D() : Texture(GL_TEXTURE_3D) {} + + uint32_t GetWidth() const { return m_width; } + uint32_t GetHeight() const { return m_height; } + uint32_t GetDepth() const { return m_depth; } + +protected: + uint32_t m_width; + uint32_t m_height; + uint32_t m_depth; + + void LoadData( + TextureFormatType format, + const void* data + ) const override; +}; + +class TextureCubeMap : public Texture { + friend class Texture; +public: + TextureCubeMap() : Texture(GL_TEXTURE_CUBE_MAP) {} + + uint32_t GetSize() const { return m_size; } + + enum class Face { + PositiveX = 0, + NegativeX, + PositiveY, + NegativeY, + PositiveZ, + NegativeZ + }; + + void LoadFaceData( + Face face, + TextureFormatType format, + const void* data + ) const; + + void LoadFaceDataFromFile( + Face face, + const std::string& filepath + ) const; + +protected: + uint32_t m_size; + + void LoadData( + TextureFormatType format, + const void* data + ) const override {} +}; \ No newline at end of file diff --git a/src/tmath.cpp b/src/tmath.cpp new file mode 100644 index 0000000..4d06f39 --- /dev/null +++ b/src/tmath.cpp @@ -0,0 +1,2 @@ +#define TMATH_IMPLEMENTATION +#include "tmath.hpp" diff --git a/src/tmath.hpp b/src/tmath.hpp new file mode 100644 index 0000000..72d28ee --- /dev/null +++ b/src/tmath.hpp @@ -0,0 +1,965 @@ +#ifndef TMATH_HPP +#define TMATH_HPP + +#include +#include +#include +#include +#include +#include + +#if defined(__SSE__) || (defined(_M_IX86_FP) && _M_IX86_FP > 0) || defined(_M_X64) + #define TMATH_SSE +#endif + +#if defined(TMATH_SSE) +# if defined(_M_IX86_FP) +# if _M_IX86_FP >=2 +# define TMATH_SSE4_1 +# endif +# elif defined(__SSE4_1__) +# define TMATH_SSE4_1 +# endif + +#if defined(_MSC_VER) +# include +#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) +# include +#endif + +# include + +# if defined(TMATH_SSE4_1) +# include +# endif + +#endif + +#ifdef TMATH_USE_NAMESPACE +namespace tm { +#endif + +namespace consts { + inline constexpr float Pi = std::numbers::pi_v; + inline constexpr float InvPi = std::numbers::inv_pi_v; + inline constexpr float InvTwoPi = 1.0f / (Pi * 2.0f); + inline constexpr float HalfPi = Pi / 2.0f; + inline constexpr float QuarPi = Pi / 4.0f; + inline constexpr float TwoPi = Pi * 2.0f; + inline constexpr float Epsilon = 1e-5f; + inline constexpr float E = std::numbers::e_v; +} + +[[nodiscard]] inline constexpr float radians(float degrees) { + return degrees * (consts::Pi / 180.0f); +} + +[[nodiscard]] inline constexpr float degrees(float radians) { + return radians * (180.0f / consts::Pi); +} + +[[nodiscard]] inline constexpr float clamp(float v, float lo, float hi) { + return v < lo ? lo : (v > hi ? hi : v); +} + +[[nodiscard]] inline constexpr float lerp(float a, float b, float t) { + return a * (1.0f - t) + b * t; +} + +class Vector2 { +public: + constexpr Vector2() = default; + constexpr Vector2(float v) : x(v), y(v) {} + constexpr Vector2(float x, float y) : x(x), y(y) {} + + [[nodiscard]] constexpr float dot(const Vector2& v) const { + return x * v.x + y * v.y; + } + + // 2D cross product (returns scalar: the z-component of the 3D cross) + [[nodiscard]] constexpr float cross(const Vector2& v) const { + return x * v.y - y * v.x; + } + + [[nodiscard]] inline float length() const { + return std::sqrt(this->dot(*this)); + } + + [[nodiscard]] constexpr float lengthSquared() const { + return this->dot(*this); + } + + [[nodiscard]] inline Vector2 normalized() const { + float nlen = 1.0f / length(); + return (*this) * nlen; + } + + [[nodiscard]] inline float distance(const Vector2& v) const { + return (*this - v).length(); + } + + [[nodiscard]] constexpr Vector2 lerp(const Vector2& to, float factor) const { + return (*this) * (1.0f - factor) + to * factor; + } + + [[nodiscard]] constexpr Vector2 reflect(const Vector2& normal) const { + return *this - normal * (2.0f * dot(normal)); + } + + [[nodiscard]] constexpr Vector2 operator -() const { + return Vector2(-x, -y); + } + + [[nodiscard]] constexpr Vector2 operator +(const Vector2& o) const { + return Vector2(x + o.x, y + o.y); + } + + [[nodiscard]] constexpr Vector2 operator -(const Vector2& o) const { + return Vector2(x - o.x, y - o.y); + } + + [[nodiscard]] constexpr Vector2 operator *(const Vector2& o) const { + return Vector2(x * o.x, y * o.y); + } + + [[nodiscard]] constexpr Vector2 operator /(const Vector2& o) const { + return Vector2(x / o.x, y / o.y); + } + + [[nodiscard]] constexpr Vector2 operator *(float o) const { + return Vector2(x * o, y * o); + } + + [[nodiscard]] constexpr Vector2 operator /(float o) const { + return Vector2(x / o, y / o); + } + + constexpr Vector2& operator +=(const Vector2& o) { x += o.x; y += o.y; return *this; } + constexpr Vector2& operator -=(const Vector2& o) { x -= o.x; y -= o.y; return *this; } + constexpr Vector2& operator *=(const Vector2& o) { x *= o.x; y *= o.y; return *this; } + constexpr Vector2& operator /=(const Vector2& o) { x /= o.x; y /= o.y; return *this; } + constexpr Vector2& operator *=(float o) { x *= o; y *= o; return *this; } + constexpr Vector2& operator /=(float o) { x /= o; y /= o; return *this; } + + constexpr bool operator ==(const Vector2&) const = default; + + [[nodiscard]] friend constexpr Vector2 operator *(float s, const Vector2& v) { return v * s; } + + float x = 0.0f, y = 0.0f; +}; + +#ifdef TMATH_IMPLEMENTATION +std::ostream& operator<<(std::ostream& o, const Vector2& v) { + return o << "Vector2(" << v.x << ", " << v.y << ")"; +} +#else +inline std::ostream& operator<<(std::ostream& o, const Vector2& v) { + return o << "Vector2(" << v.x << ", " << v.y << ")"; +} +#endif + +class Vector3 { +public: + constexpr Vector3() = default; + constexpr Vector3(float v) : x(v), y(v), z(v) {} + constexpr Vector3(float x, float y, float z) : x(x), y(y), z(z) {} + constexpr Vector3(const Vector2& v, float z = 0.0f) : x(v.x), y(v.y), z(z) {} + + [[nodiscard]] constexpr Vector2 toVector2() const { return Vector2(x, y); } + + [[nodiscard]] constexpr float dot(const Vector3& v) const { + return x * v.x + y * v.y + z * v.z; + } + + [[nodiscard]] constexpr Vector3 cross(const Vector3& v) const { + return Vector3( + y * v.z - z * v.y, + z * v.x - x * v.z, + x * v.y - y * v.x + ); + } + + [[nodiscard]] constexpr Vector3 lerp(const Vector3& to, float factor) const { + return (*this) * (1.0f - factor) + to * factor; + } + + [[nodiscard]] inline float length() const { + return std::sqrt(this->dot(*this)); + } + + [[nodiscard]] constexpr float lengthSquared() const { + return this->dot(*this); + } + + [[nodiscard]] inline Vector3 normalized() const { + float nlen = 1.0f / length(); + return (*this) * nlen; + } + + [[nodiscard]] inline float distance(const Vector3& v) const { + return (*this - v).length(); + } + + [[nodiscard]] constexpr Vector3 reflect(const Vector3& normal) const { + return *this - normal * (2.0f * dot(normal)); + } + + [[nodiscard]] inline Vector3 refract(const Vector3& normal, float eta) const { + const float cosI = -dot(normal); + const float sinT2 = eta * eta * (1.0f - cosI * cosI); + if (sinT2 > 1.0f) return Vector3(0.0f); + const float cosT = std::sqrt(1.0f - sinT2); + return (*this) * eta + normal * (eta * cosI - cosT); + } + + [[nodiscard]] constexpr Vector3 operator -() const { + return Vector3(-x, -y, -z); + } + + [[nodiscard]] constexpr Vector3 operator +(const Vector3& o) const { + return Vector3(x + o.x, y + o.y, z + o.z); + } + + [[nodiscard]] constexpr Vector3 operator -(const Vector3& o) const { + return Vector3(x - o.x, y - o.y, z - o.z); + } + + [[nodiscard]] constexpr Vector3 operator *(const Vector3& o) const { + return Vector3(x * o.x, y * o.y, z * o.z); + } + + [[nodiscard]] constexpr Vector3 operator /(const Vector3& o) const { + return Vector3(x / o.x, y / o.y, z / o.z); + } + + [[nodiscard]] constexpr Vector3 operator *(float o) const { + return Vector3(x * o, y * o, z * o); + } + + [[nodiscard]] constexpr Vector3 operator /(float o) const { + return Vector3(x / o, y / o, z / o); + } + + constexpr Vector3& operator +=(const Vector3& o) { x += o.x; y += o.y; z += o.z; return *this; } + constexpr Vector3& operator -=(const Vector3& o) { x -= o.x; y -= o.y; z -= o.z; return *this; } + constexpr Vector3& operator *=(const Vector3& o) { x *= o.x; y *= o.y; z *= o.z; return *this; } + constexpr Vector3& operator /=(const Vector3& o) { x /= o.x; y /= o.y; z /= o.z; return *this; } + constexpr Vector3& operator *=(float o) { x *= o; y *= o; z *= o; return *this; } + constexpr Vector3& operator /=(float o) { x /= o; y /= o; z /= o; return *this; } + + constexpr bool operator ==(const Vector3&) const = default; + + [[nodiscard]] friend constexpr Vector3 operator *(float s, const Vector3& v) { return v * s; } + + float x = 0.0f, y = 0.0f, z = 0.0f; +}; + +#ifdef TMATH_IMPLEMENTATION +std::ostream& operator<<(std::ostream& o, const Vector3& v) { + return o << "Vector3(" << v.x << ", " << v.y << ", " << v.z << ")"; +} +#else +inline std::ostream& operator<<(std::ostream& o, const Vector3& v) { + return o << "Vector3(" << v.x << ", " << v.y << ", " << v.z << ")"; +} +#endif + +class Vector4 { +public: + constexpr Vector4() = default; + constexpr Vector4(float v) : x(v), y(v), z(v), w(v) {} + constexpr Vector4(float x, float y, float z, float w) : x(x), y(y), z(z), w(w) {} + constexpr Vector4(const Vector2& v, float z = 0.0f, float w = 0.0f) : x(v.x), y(v.y), z(z), w(w) {} + constexpr Vector4(const Vector3& v, float w = 0.0f) : x(v.x), y(v.y), z(v.z), w(w) {} + + [[nodiscard]] constexpr Vector2 toVector2() const { return Vector2(x, y); } + [[nodiscard]] constexpr Vector3 toVector3() const { return Vector3(x, y, z); } + + [[nodiscard]] constexpr float dot(const Vector4& v) const { + return x * v.x + y * v.y + z * v.z + w * v.w; + } + + [[nodiscard]] inline float length() const { + return std::sqrt(this->dot(*this)); + } + + [[nodiscard]] constexpr float lengthSquared() const { + return this->dot(*this); + } + + [[nodiscard]] inline Vector4 normalized() const { + float nlen = 1.0f / length(); + return (*this) * nlen; + } + + [[nodiscard]] constexpr Vector4 lerp(const Vector4& to, float factor) const { + return (*this) * (1.0f - factor) + to * factor; + } + + [[nodiscard]] constexpr Vector4 operator -() const { + return Vector4(-x, -y, -z, -w); + } + + [[nodiscard]] constexpr Vector4 operator +(const Vector4& o) const { + return Vector4(x + o.x, y + o.y, z + o.z, w + o.w); + } + + [[nodiscard]] constexpr Vector4 operator -(const Vector4& o) const { + return Vector4(x - o.x, y - o.y, z - o.z, w - o.w); + } + + [[nodiscard]] constexpr Vector4 operator *(const Vector4& o) const { + return Vector4(x * o.x, y * o.y, z * o.z, w * o.w); + } + + [[nodiscard]] constexpr Vector4 operator /(const Vector4& o) const { + return Vector4(x / o.x, y / o.y, z / o.z, w / o.w); + } + + [[nodiscard]] constexpr Vector4 operator *(float o) const { + return Vector4(x * o, y * o, z * o, w * o); + } + + [[nodiscard]] constexpr Vector4 operator /(float o) const { + return Vector4(x / o, y / o, z / o, w / o); + } + + constexpr Vector4& operator +=(const Vector4& o) { x += o.x; y += o.y; z += o.z; w += o.w; return *this; } + constexpr Vector4& operator -=(const Vector4& o) { x -= o.x; y -= o.y; z -= o.z; w -= o.w; return *this; } + constexpr Vector4& operator *=(const Vector4& o) { x *= o.x; y *= o.y; z *= o.z; w *= o.w; return *this; } + constexpr Vector4& operator /=(const Vector4& o) { x /= o.x; y /= o.y; z /= o.z; w /= o.w; return *this; } + constexpr Vector4& operator *=(float o) { x *= o; y *= o; z *= o; w *= o; return *this; } + constexpr Vector4& operator /=(float o) { x /= o; y /= o; z /= o; w /= o; return *this; } + + constexpr bool operator ==(const Vector4&) const = default; + + [[nodiscard]] constexpr float& operator [](size_t i) { + switch (i) { + default: + case 0: return x; + case 1: return y; + case 2: return z; + case 3: return w; + } + } + + [[nodiscard]] constexpr const float& operator [](size_t i) const { + switch (i) { + default: + case 0: return x; + case 1: return y; + case 2: return z; + case 3: return w; + } + } + + [[nodiscard]] friend constexpr Vector4 operator *(float s, const Vector4& v) { return v * s; } + + float x = 0.0f, y = 0.0f, z = 0.0f, w = 0.0f; +}; + +#ifdef TMATH_IMPLEMENTATION +std::ostream& operator<<(std::ostream& o, const Vector4& v) { + return o << "Vector4(" << v.x << ", " << v.y << ", " << v.z << ", " << v.w << ")"; +} +#else +inline std::ostream& operator<<(std::ostream& o, const Vector4& v) { + return o << "Vector4(" << v.x << ", " << v.y << ", " << v.z << ", " << v.w << ")"; +} +#endif + +class Matrix4 { +public: + constexpr Matrix4() : m_rows{} {} + constexpr Matrix4(const std::array& m) { + m_rows[0] = Vector4(m[0], m[1], m[2], m[3]); + m_rows[1] = Vector4(m[4], m[5], m[6], m[7]); + m_rows[2] = Vector4(m[8], m[9], m[10], m[11]); + m_rows[3] = Vector4(m[12], m[13], m[14], m[15]); + } + + [[nodiscard]] float* data() { return &m_rows[0][0]; } + [[nodiscard]] const float* data() const { return &m_rows[0][0]; } + + [[nodiscard]] static constexpr Matrix4 identity() { + return Matrix4({ + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + }); + } + + [[nodiscard]] static constexpr Matrix4 translation(const Vector3& t) { + return Matrix4({ + 1, 0, 0, t.x, + 0, 1, 0, t.y, + 0, 0, 1, t.z, + 0, 0, 0, 1 + }); + } + + [[nodiscard]] static constexpr Matrix4 scale(const Vector3& s) { + return Matrix4({ + s.x, 0, 0, 0, + 0, s.y, 0, 0, + 0, 0, s.z, 0, + 0, 0, 0, 1 + }); + } + + [[nodiscard]] static constexpr Matrix4 uniformScale(float s) { + return Matrix4({ + s, 0, 0, 0, + 0, s, 0, 0, + 0, 0, s, 0, + 0, 0, 0, 1 + }); + } + + [[nodiscard]] inline static Matrix4 rotationX(float angle) { + const float s = std::sin(angle), c = std::cos(angle); + return Matrix4({ + 1, 0, 0, 0, + 0, c, -s, 0, + 0, s, c, 0, + 0, 0, 0, 1 + }); + } + + [[nodiscard]] inline static Matrix4 rotationY(float angle) { + const float s = std::sin(angle), c = std::cos(angle); + return Matrix4({ + c, 0, s, 0, + 0, 1, 0, 0, + -s, 0, c, 0, + 0, 0, 0, 1 + }); + } + + [[nodiscard]] inline static Matrix4 rotationZ(float angle) { + const float s = std::sin(angle), c = std::cos(angle); + return Matrix4({ + c, -s, 0, 0, + s, c, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + }); + } + + [[nodiscard]] static constexpr Matrix4 rotation(const Vector3& forward, const Vector3& up, const Vector3& right) { + const Vector3& f = forward, u = up, r = right; + return Matrix4({ + r.x, r.y, r.z, 0.0f, + u.x, u.y, u.z, 0.0f, + f.x, f.y, f.z, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }); + } + + [[nodiscard]] inline static Matrix4 rotation(const Vector3& forward, const Vector3& up) { + const Vector3 f = forward.normalized(); + Vector3 r = up.normalized(); + r = r.cross(f); + + Vector3 u = f.cross(r); + return rotation(f, u, r); + } + + [[nodiscard]] inline static Matrix4 angleAxis(float angle, const Vector3& axis) { + const float s = std::sin(angle), + c = std::cos(angle), + t = 1.0f - c; + + Vector3 ax = axis.normalized(); + float x = ax.x, y = ax.y, z = ax.z; + return Matrix4({ + t * x * x + c, t * x * y - z * s, t * x * z + y * s, 0, + t * x * y + z * s, t * y * y + c, t * y * z - x * s, 0, + t * x * z - y * s, t * y * z + x * s, t * z * z + c, 0, + 0, 0, 0, 1 + }); + } + + [[nodiscard]] static constexpr Matrix4 ortho(float left, float right, float bottom, float top, float near, float far) { + const float w = right - left; + const float h = top - bottom; + const float d = far - near; + return Matrix4({ + 2.0f / w, 0.0f, 0.0f, -((right + left) / w), + 0.0f, 2.0f / h, 0.0f, -((top + bottom) / h), + 0.0f, 0.0f, -2.0f / d, -((far + near) / d), + 0.0f, 0.0f, 0.0f, 1.0f + }); + } + + [[nodiscard]] inline static Matrix4 perspective(float fov, float aspect, float near, float far) { + const float thf = std::tan(fov / 2.0f); + return Matrix4({ + 1.0f / (aspect * thf), 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f / thf, 0.0f, 0.0f, + 0.0f, 0.0f, -((far + near) / (far - near)), -((2.0f * far * near) / (far - near)), + 0.0f, 0.0f, -1.0f, 0.0f + }); + } + + [[nodiscard]] inline static Matrix4 lookAt(const Vector3& eye, const Vector3& target, const Vector3& up) { + const Vector3 f = (target - eye).normalized(); + const Vector3 r = f.cross(up.normalized()).normalized(); + const Vector3 u = r.cross(f); + return Matrix4({ + r.x, r.y, r.z, -r.dot(eye), + u.x, u.y, u.z, -u.dot(eye), + -f.x, -f.y, -f.z, f.dot(eye), + 0.0f, 0.0f, 0.0f, 1.0f + }); + } + + [[nodiscard]] inline Matrix4 operator *(const Matrix4& mat) const { + Matrix4 ret{}; +#if defined(TMATH_SSE) + __m128 out0x = lincomb_SSE(s_rows[0], mat); + __m128 out1x = lincomb_SSE(s_rows[1], mat); + __m128 out2x = lincomb_SSE(s_rows[2], mat); + __m128 out3x = lincomb_SSE(s_rows[3], mat); + ret.s_rows[0] = out0x; + ret.s_rows[1] = out1x; + ret.s_rows[2] = out2x; + ret.s_rows[3] = out3x; +#else + for (size_t i = 0; i < 4; i++) { + for (size_t j = 0; j < 4; j++) { + ret[i][j] = 0.0f; + for (size_t k = 0; k < 4; k++) { + ret[i][j] += (*this)[i][k] * mat[k][j]; + } + } + } +#endif + return ret; + } + + [[nodiscard]] inline Vector4 operator *(const Vector4& v) const { + const Matrix4& m = (*this); + return Vector4( + m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z + m[0][3] * v.w, + m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z + m[1][3] * v.w, + m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z + m[2][3] * v.w, + m[3][0] * v.x + m[3][1] * v.y + m[3][2] * v.z + m[3][3] * v.w + ); + } + + [[nodiscard]] inline Vector3 operator *(const Vector3& v) const { + return ((*this) * Vector4(v, 1.0f)).toVector3(); + } + + [[nodiscard]] constexpr Matrix4 transposed() const { + return Matrix4({ + m_rows[0].x, m_rows[1].x, m_rows[2].x, m_rows[3].x, + m_rows[0].y, m_rows[1].y, m_rows[2].y, m_rows[3].y, + m_rows[0].z, m_rows[1].z, m_rows[2].z, m_rows[3].z, + m_rows[0].w, m_rows[1].w, m_rows[2].w, m_rows[3].w + }); + } + + [[nodiscard]] constexpr float determinant() const { + const float* m = &m_rows[0].x; + float a0 = m[0] * (m[5] * (m[10] * m[15] - m[11] * m[14]) - + m[6] * (m[9] * m[15] - m[11] * m[13]) + + m[7] * (m[9] * m[14] - m[10] * m[13])); + float a1 = m[1] * (m[4] * (m[10] * m[15] - m[11] * m[14]) - + m[6] * (m[8] * m[15] - m[11] * m[12]) + + m[7] * (m[8] * m[14] - m[10] * m[12])); + float a2 = m[2] * (m[4] * (m[9] * m[15] - m[11] * m[13]) - + m[5] * (m[8] * m[15] - m[11] * m[12]) + + m[7] * (m[8] * m[13] - m[9] * m[12])); + float a3 = m[3] * (m[4] * (m[9] * m[14] - m[10] * m[13]) - + m[5] * (m[8] * m[14] - m[10] * m[12]) + + m[6] * (m[8] * m[13] - m[9] * m[12])); + return a0 - a1 + a2 - a3; + } + + [[nodiscard]] inline Matrix4 inverse() const { + Matrix4 res{}; + Matrix4 tmp = *this; + float* m = tmp.data(); + float inv[16], det; + + inv[0] = m[5] * m[10] * m[15] - + m[5] * m[11] * m[14] - + m[9] * m[6] * m[15] + + m[9] * m[7] * m[14] + + m[13] * m[6] * m[11] - + m[13] * m[7] * m[10]; + + inv[4] = -m[4] * m[10] * m[15] + + m[4] * m[11] * m[14] + + m[8] * m[6] * m[15] - + m[8] * m[7] * m[14] - + m[12] * m[6] * m[11] + + m[12] * m[7] * m[10]; + + inv[8] = m[4] * m[9] * m[15] - + m[4] * m[11] * m[13] - + m[8] * m[5] * m[15] + + m[8] * m[7] * m[13] + + m[12] * m[5] * m[11] - + m[12] * m[7] * m[9]; + + inv[12] = -m[4] * m[9] * m[14] + + m[4] * m[10] * m[13] + + m[8] * m[5] * m[14] - + m[8] * m[6] * m[13] - + m[12] * m[5] * m[10] + + m[12] * m[6] * m[9]; + + inv[1] = -m[1] * m[10] * m[15] + + m[1] * m[11] * m[14] + + m[9] * m[2] * m[15] - + m[9] * m[3] * m[14] - + m[13] * m[2] * m[11] + + m[13] * m[3] * m[10]; + + inv[5] = m[0] * m[10] * m[15] - + m[0] * m[11] * m[14] - + m[8] * m[2] * m[15] + + m[8] * m[3] * m[14] + + m[12] * m[2] * m[11] - + m[12] * m[3] * m[10]; + + inv[9] = -m[0] * m[9] * m[15] + + m[0] * m[11] * m[13] + + m[8] * m[1] * m[15] - + m[8] * m[3] * m[13] - + m[12] * m[1] * m[11] + + m[12] * m[3] * m[9]; + + inv[13] = m[0] * m[9] * m[14] - + m[0] * m[10] * m[13] - + m[8] * m[1] * m[14] + + m[8] * m[2] * m[13] + + m[12] * m[1] * m[10] - + m[12] * m[2] * m[9]; + + inv[2] = m[1] * m[6] * m[15] - + m[1] * m[7] * m[14] - + m[5] * m[2] * m[15] + + m[5] * m[3] * m[14] + + m[13] * m[2] * m[7] - + m[13] * m[3] * m[6]; + + inv[6] = -m[0] * m[6] * m[15] + + m[0] * m[7] * m[14] + + m[4] * m[2] * m[15] - + m[4] * m[3] * m[14] - + m[12] * m[2] * m[7] + + m[12] * m[3] * m[6]; + + inv[10] = m[0] * m[5] * m[15] - + m[0] * m[7] * m[13] - + m[4] * m[1] * m[15] + + m[4] * m[3] * m[13] + + m[12] * m[1] * m[7] - + m[12] * m[3] * m[5]; + + inv[14] = -m[0] * m[5] * m[14] + + m[0] * m[6] * m[13] + + m[4] * m[1] * m[14] - + m[4] * m[2] * m[13] - + m[12] * m[1] * m[6] + + m[12] * m[2] * m[5]; + + inv[3] = -m[1] * m[6] * m[11] + + m[1] * m[7] * m[10] + + m[5] * m[2] * m[11] - + m[5] * m[3] * m[10] - + m[9] * m[2] * m[7] + + m[9] * m[3] * m[6]; + + inv[7] = m[0] * m[6] * m[11] - + m[0] * m[7] * m[10] - + m[4] * m[2] * m[11] + + m[4] * m[3] * m[10] + + m[8] * m[2] * m[7] - + m[8] * m[3] * m[6]; + + inv[11] = -m[0] * m[5] * m[11] + + m[0] * m[7] * m[9] + + m[4] * m[1] * m[11] - + m[4] * m[3] * m[9] - + m[8] * m[1] * m[7] + + m[8] * m[3] * m[5]; + + inv[15] = m[0] * m[5] * m[10] - + m[0] * m[6] * m[9] - + m[4] * m[1] * m[10] + + m[4] * m[2] * m[9] + + m[8] * m[1] * m[6] - + m[8] * m[2] * m[5]; + + det = m[0] * inv[0] + m[1] * inv[4] + m[2] * inv[8] + m[3] * inv[12]; + + if (det == 0) + return (*this); + + det = 1.0f / det; + + for (int i = 0; i < 16; i++) res.data()[i] = inv[i] * det; + return res; + } + + constexpr Vector4& operator [](size_t i) { return m_rows[i]; } + constexpr const Vector4& operator [](size_t i) const { return m_rows[i]; } + +private: + union { + Vector4 m_rows[4]; +#if defined(TMATH_SSE) + __m128 s_rows[4]; +#endif + }; + +#if defined(TMATH_SSE) + inline __m128 lincomb_SSE(const __m128 &a, const Matrix4& b) const { + __m128 result; + result = _mm_mul_ps(_mm_shuffle_ps(a, a, 0x00), b.s_rows[0]); + result = _mm_add_ps(result, _mm_mul_ps(_mm_shuffle_ps(a, a, 0x55), b.s_rows[1])); + result = _mm_add_ps(result, _mm_mul_ps(_mm_shuffle_ps(a, a, 0xaa), b.s_rows[2])); + result = _mm_add_ps(result, _mm_mul_ps(_mm_shuffle_ps(a, a, 0xff), b.s_rows[3])); + return result; + } +#endif +}; + +#ifdef TMATH_IMPLEMENTATION +std::ostream& operator<<(std::ostream& o, const Matrix4& v) { + return o << "Matrix4(\n" << + "\t" << v[0] << "\n" << + "\t" << v[1] << "\n" << + "\t" << v[2] << "\n" << + "\t" << v[3] << "\n)"; +} +#else +inline std::ostream& operator<<(std::ostream& o, const Matrix4& v) { + return o << "Matrix4(\n" << + "\t" << v[0] << "\n" << + "\t" << v[1] << "\n" << + "\t" << v[2] << "\n" << + "\t" << v[3] << "\n)"; +} +#endif + +class Quaternion { +public: + constexpr Quaternion() = default; + constexpr Quaternion(float v) : x(v), y(v), z(v), w(v) {} + constexpr Quaternion(float x, float y, float z, float w) : x(x), y(y), z(z), w(w) {} + constexpr Quaternion(const Vector2& v, float z = 0.0f, float w = 1.0f) : x(v.x), y(v.y), z(z), w(w) {} + constexpr Quaternion(const Vector3& v, float w = 1.0f) : x(v.x), y(v.y), z(v.z), w(w) {} + constexpr Quaternion(const Vector4& v) : x(v.x), y(v.y), z(v.z), w(v.w) {} + + [[nodiscard]] inline static Quaternion axisAngle(const Vector3& axis, float angle) { + const float hs = std::sin(angle / 2.0f), + hc = std::cos(angle / 2.0f); + Vector3 a = axis.normalized(); + return Quaternion(hs * a.x, hs * a.y, hs * a.z, hc); + } + + [[nodiscard]] inline static Quaternion fromEuler(float pitch, float yaw, float roll) { + const float cp = std::cos(pitch * 0.5f), sp = std::sin(pitch * 0.5f); + const float cy = std::cos(yaw * 0.5f), sy = std::sin(yaw * 0.5f); + const float cr = std::cos(roll * 0.5f), sr = std::sin(roll * 0.5f); + return Quaternion( + sr * cp * cy - cr * sp * sy, + cr * sp * cy + sr * cp * sy, + cr * cp * sy - sr * sp * cy, + cr * cp * cy + sr * sp * sy + ); + } + + [[nodiscard]] inline Vector3 toEuler() const { + // Returns (pitch, yaw, roll) in radians + float sinp = 2.0f * (w * y - z * x); + float pitch; + if (std::abs(sinp) >= 1.0f) + pitch = std::copysign(consts::HalfPi, sinp); + else + pitch = std::asin(sinp); + + float siny_cosp = 2.0f * (w * z + x * y); + float cosy_cosp = 1.0f - 2.0f * (y * y + z * z); + float yaw = std::atan2(siny_cosp, cosy_cosp); + + float sinr_cosp = 2.0f * (w * x + y * z); + float cosr_cosp = 1.0f - 2.0f * (x * x + y * y); + float roll = std::atan2(sinr_cosp, cosr_cosp); + + return Vector3(pitch, yaw, roll); + } + + [[nodiscard]] inline static Quaternion fromMatrix(const Matrix4& m) { + float trace = m[0][0] + m[1][1] + m[2][2]; + if (trace > 0.0f) { + float s = 0.5f / std::sqrt(trace + 1.0f); + return Quaternion( + (m[2][1] - m[1][2]) * s, + (m[0][2] - m[2][0]) * s, + (m[1][0] - m[0][1]) * s, + 0.25f / s + ); + } else if (m[0][0] > m[1][1] && m[0][0] > m[2][2]) { + float s = 2.0f * std::sqrt(1.0f + m[0][0] - m[1][1] - m[2][2]); + return Quaternion( + 0.25f * s, + (m[0][1] + m[1][0]) / s, + (m[0][2] + m[2][0]) / s, + (m[2][1] - m[1][2]) / s + ); + } else if (m[1][1] > m[2][2]) { + float s = 2.0f * std::sqrt(1.0f + m[1][1] - m[0][0] - m[2][2]); + return Quaternion( + (m[0][1] + m[1][0]) / s, + 0.25f * s, + (m[1][2] + m[2][1]) / s, + (m[0][2] - m[2][0]) / s + ); + } else { + float s = 2.0f * std::sqrt(1.0f + m[2][2] - m[0][0] - m[1][1]); + return Quaternion( + (m[0][2] + m[2][0]) / s, + (m[1][2] + m[2][1]) / s, + 0.25f * s, + (m[1][0] - m[0][1]) / s + ); + } + } + + [[nodiscard]] constexpr Vector2 toVector2() const { return Vector2(x, y); } + [[nodiscard]] constexpr Vector3 toVector3() const { return Vector3(x, y, z); } + [[nodiscard]] constexpr Vector4 toVector4() const { return Vector4(x, y, z, w); } + + [[nodiscard]] constexpr Quaternion conjugated() const { + return Quaternion(-x, -y, -z, w); + } + + [[nodiscard]] constexpr Quaternion inversed() const { + float lenSq = dot(*this); + return conjugated() * (1.0f / lenSq); + } + + [[nodiscard]] constexpr float dot(const Quaternion& q) const { + return x * q.x + y * q.y + z * q.z + w * q.w; + } + + [[nodiscard]] inline float length() const { + return std::sqrt(this->dot(*this)); + } + + [[nodiscard]] constexpr float lengthSquared() const { + return this->dot(*this); + } + + [[nodiscard]] inline Quaternion normalized() const { + float nlen = 1.0f / length(); + return (*this) * nlen; + } + + [[nodiscard]] constexpr Quaternion operator -() const { + return Quaternion(-x, -y, -z, -w); + } + + [[nodiscard]] constexpr Quaternion operator *(const Quaternion& r) const { + float w_ = w * r.w - x * r.x - y * r.y - z * r.z; + float x_ = x * r.w + w * r.x + y * r.z - z * r.y; + float y_ = y * r.w + w * r.y + z * r.x - x * r.z; + float z_ = z * r.w + w * r.z + x * r.y - y * r.x; + return Quaternion(x_, y_, z_, w_); + } + + [[nodiscard]] constexpr Quaternion operator *(const Vector3& r) const { + float w_ = -x * r.x - y * r.y - z * r.z; + float x_ = w * r.x + y * r.z - z * r.y; + float y_ = w * r.y + z * r.x - x * r.z; + float z_ = w * r.z + x * r.y - y * r.x; + return Quaternion(x_, y_, z_, w_); + } + + [[nodiscard]] constexpr Quaternion operator *(float r) const { + return Quaternion(x * r, y * r, z * r, w * r); + } + + [[nodiscard]] constexpr Quaternion operator +(const Quaternion& r) const { + return Quaternion(x + r.x, y + r.y, z + r.z, w + r.w); + } + + [[nodiscard]] constexpr Quaternion operator -(const Quaternion& r) const { + return Quaternion(x - r.x, y - r.y, z - r.z, w - r.w); + } + + constexpr bool operator ==(const Quaternion&) const = default; + + [[nodiscard]] inline Vector3 rotate(const Vector3& v) const { + const Quaternion cq = conjugated(); + const Quaternion r = ((*this) * v) * cq; + return r.toVector3(); + } + + [[nodiscard]] inline Matrix4 toMatrix4() const { + const Vector3 forward = Vector3(2.0f * (x * z - w * y), 2.0f * (y * z + w * x), 1.0f - 2.0f * (x * x + y * y)); + const Vector3 up = Vector3(2.0f * (x * y + w * z), 1.0f - 2.0f * (x * x + z * z), 2.0f * (y * z - w * x)); + const Vector3 right = Vector3(1.0f - 2.0f * (y * y + z * z), 2.0f * (x * y - w * z), 2.0f * (x * z + w * y)); + return Matrix4::rotation(forward, up, right); + } + + [[nodiscard]] inline Quaternion nLerp(const Quaternion& to, float factor, bool shortest = true) const { + Quaternion correctTo = to; + if (shortest && dot(to) < 0.0f) { + correctTo = Quaternion(-to.x, -to.y, -to.z, -to.w); + } + return ((*this) * (1.0f - factor) + correctTo * factor).normalized(); + } + + [[nodiscard]] inline Quaternion sLerp(const Quaternion& to, float factor, bool shortest = true) const { + const float THRESHOLD = 1e-3f; + + float cos = dot(to); + Quaternion correctTo = to; + + if (shortest && cos < 0.0f) { + cos = -cos; + correctTo = Quaternion(-to.x, -to.y, -to.z, -to.w); + } + + if (std::abs(cos) >= 1.0f - THRESHOLD) + return nLerp(to, factor, shortest); + + const float sin = std::sqrt(1.0f - cos * cos); + const float angle = std::atan2(sin, cos); + const float invSin = 1.0f / sin; + + const float srcFactor = std::sin((1.0f - factor) * angle) * invSin; + const float destFactor = std::sin(factor * angle) * invSin; + + return (*this) * srcFactor + correctTo * destFactor; + } + + [[nodiscard]] friend constexpr Quaternion operator *(float s, const Quaternion& q) { return q * s; } + + float x = 0.0f, y = 0.0f, z = 0.0f, w = 0.0f; +}; + +#ifdef TMATH_IMPLEMENTATION +std::ostream& operator<<(std::ostream& o, const Quaternion& v) { + return o << "Quaternion(" << v.x << ", " << v.y << ", " << v.z << ", " << v.w << ")"; +} +#else +inline std::ostream& operator<<(std::ostream& o, const Quaternion& v) { + return o << "Quaternion(" << v.x << ", " << v.y << ", " << v.z << ", " << v.w << ")"; +} +#endif + +#ifdef TMATH_USE_NAMESPACE +} +#endif + +#endif // TMATH_HPP \ No newline at end of file

F&?4jJs+(xRVmGT{N62T!8Q1@szm4$c%n%2K86pj`XG*mo*8(UOQgZkm^ft^uQ zHBAEYZANa1>xHt0k`|STP|qgriO1LL(++ac#$}1gbvvEtH4fk!e`f?{GT^j(-m7gU z8)*56zW)Hz8h0bSlZDofN(k7u1Y+aetMlv28o4;?nMne=wU@q5OLpV@G^1U623#liHqgJsg(nu9t{<>Tk`4p;-zeZ zQnxd1N#eMbBaLg<&lStMy2Zi_yP!1q2VT44TcD3L#um#ZOX}&!J>AJ6ay~-|k(0AB ztev3x4+Ob*QY&gl9kCKUIrYS+vtCZh&8s!J24~FW?&z_`^GPO~@*sn_`QiPh49mi$ zplRVUgOzk}a}dju$;<6t&hY`TuP;t0XGtJvvoTiIF4;o4tvxj{B*nd_qsQy%h*Ak8 z&Ld1^%zHqRCWc0CG}4nV6g(ei{;xbr(l%EyBvwrt8HAv`A~`He47HXjUBmrx9E@8t znan`hmqorkHI9)*0>$q_6CSlWo44jM3JkrumI{#Na;ssMgglJzC4+ztbnA#FN#!%< zC}ml9_GS_DO8dnY{h%|qUR&k6GA2yEQ#Y25ZCFY+WXSQJ?PubWILvbSn%($tCeH-Q zc4*7j+B0ssbj-eDJ_z!9hB-4dH5b9ccJml5kk4ha`Fq)pUMCh%+jO! z(|m@RfO|B0Ts{e+jR-dWH096v;-=f%jH>P3oNzr|BnfXNt(S7C<;xxD+|=3@jF-3f z`Czb>yS+`u+%5I%{V`2II#F&n51#hnnFR~o-`g1*d=1`j&lhSAB(!l<+&oHoU=?SK zT3Uqc>#?sP%L_J7Fu6?R!tB!yD05xk4x~2Ot5QJQhu3^AQ#i6go0_}~6;f4{JPT_X<^Id^{1d+<1d|fdox+=%Ibh279`0Kd< zZaLEq`9%i6QcxHXyIZ%R#-sO6PZ8LeJjI*o{QCVc7D&{@X&tVC#r;jCO%E-)dg5&) zWP($taIAeRPlREbIirPFk5*v2C!(?{ zJM4es8Jm|cCw}|J9vPWdS^`2A(~&=}4rf1-6wF9~M>MkL0D(fP$Rw`~(wA~&D`{G%P9{3(0#5KQk;7k@r4hSgH9XBBDRj>8H zu@X4w>LE~Stltr@DE|NpT*K>yWi%{BF1q3ccvpTOPIy-U5@=1I5I^5uSZFf;02ceU z%X4&Edh$H!fhbB)w|NTc8;v-*V=>xYgP)(VWu9GE5KScAnVgLPciDWlRlNQhI%X76Zf90|WwD_b4Mc5ZK|$AQ z_2`*g{5dSiWl- zk2&m-=8=%3kv{{-yH?pPHb{fldg4i9T*PYj%^$SR*{r?7D~(fDDpzgp75ZXH0eGaI z)shyR%N}9fKxbHGB3muny7qa7-1eZ(46xUb#-_19eIj>$(=2(7#H06vX$1{@j>lr{ zQR49*kNz>F}k&qf&H=E)e<kdkR^m-l{Jd|b%IQKf18HZ2@RSKdb; zYKysQMM~|@53bXNE+vXqRiwAAizedbbnt1Y>wp-eEPf~I+t-bFIpV}XWs_5j#LQeB zy*_yMWouu-t_2xoVc`DG2CAfTScx<29!_MJdU5e_zSzu!9n3m`a}ro;g@xK?UE5~* z;z5>?i@cF2y44b?1Tv{s?@c^EGm9iG6s>NYi2Pzoe4IBsy$T2h2;eYFJ&> z!w&W_C88L4RPTu|aQSPXg?9+3$QTmNm3bCd^W}?eSgl$KNfgw$JzW4sj0)}=)#vmP zO$2KxjY?)0RqAS0Oh%$L7x&EANOLnrf;~r_sFLc&rk38N6X}SNLbTRAg%I4KMYK0H z3l4adCJ{#%+Ka^C$;1W9dJH`&FAxP8>vC`6y{TVbn4C3JyVDWHzG5j|^)=Z!IFS%X zrADur=_j+e)ft+?2;I}eWA$leHH=o3-);7E%g99TgiN3~i$GGXbve}dsf3mT24z8w z-r24y7iwl~0yOg*`Qt4nS>ahx?Gjwt&SW8E79g(l>5pga46a`7WGyqRN!bK|{*6X(7zfX0A2plV%n z4*^Dw;i=-p0(nHb676h}7l+^Iyf!ZN^tG0nEpg;(WKX&hmcu zRwR-rqI0Jo4#WM?Q?ipJ{?bNgIi8vGc^3+GW41Je>q#|fF5T5WDp2r|NJ_&= zMNddfx_@mJ^zt~&B!@1tqzjdW%t+i58fFfj+I`eU8q<*{enFfHZA#LbOnevr0G3YF z>50}jLbN_NXI&_)t@E?{tueR5k7vwg4{K*u5>qSx08Uw%I@0(=`T4(QRBL zO)F5=n*G*aEM5dn5dGU+Y4?Zq!&CviPzJ3*KfF$OJ1w_v0jkt}7Pve#qk=zQrEqNE zK(^K}R!aGLaU5vOvNYr_ku(yejxKFlQm>A)FQ^scdii2WrH8a&%_7jK%CQm1+eTwHv{OXH;htuA^S6Vl(8nfLc2&8S ze7HfP{{VJKk6kGaHq3W*Yf=~@OMmp*(=9O0a|TGmGXa?IEdY4yy;W}G^2Dp{5lCb= z#<09j*;BDr0Z#?qHbLN~HAHagEt=U`TMs-4j-VtOB!ksi2uae{XhyMAB+aogf!i{{HbN>py8ST^+7uGn1Cx|Ica zACGxILpSDo5qBQwuL*A8Wa(?77^|OgMqZbuL#lvIt2${P*XH5?qUArH)M& zS+iMqH6*k(GP21gl>K+a9^aOH&XXpuv+Fit^5X6#jWqL3C*^|&Wx)nz;gymdJi0X2 zcX!Gp%y*H;UHpoS7{V&cxpb!Jqpf}4@E*1G#U!Pm5Fb&kX?_sMw7d2Cb)Zf29vbqG zrPcgDyWX|LqE&T90r}9pYIqnp7mZESZ{>{4S$w3UD>1C?Xq16z?((Emg7oBsbi_HA z%Q1!rRhfxV?2$ZYPci%m>~%VW=S&zNTf>GXNb1FlF4d#557!1uu5zn!qujOW%YIse z%MnRtlS?_05Ll~_BcNlk@q8!K2^$Tpp=aD&wFcAm!pH2Y#z9vm(h*HS^7W<`s+L9x z4x}*+;M%-bbvUZ!^~mC8)!k3PMBfd+F1VQ+g^RQmQ68rnY*CADpG-v@(#vL@gfbhd zrj^;jWAW|F`O&9XnbqX*ttygMr+byL6ws3yvx-x+%sPaR4lXeN01Rl-F>Y#>Q;Ca!d)%T9NL`&Nu1T5kZ>Fdwaqg zF7wD@?^5b4j}&_(?H|0`uddAtNcm_`YOE&Y2~#Wh0J+wQOM(`xt4D`cG&UBNce7!r1(f^;nuuLfd4)#Q^*MXGkN)ckmcCeeyayn$6|YcpL`8HGuFQURnT+kN(}FwSrhhVj0X{-vPgo4c?$_YOh+?FsRVLMCS+9xTaL#? z%c4?UNWKxZW<2pPu|}}vyb)hvm7+GL?{}g90DL?h`bV56vn0*H);wc0lM5q#A--$e z<0aV%mCLlQO2(Od?EuMkeuNR_QaEWeZXt@gQ`eO_;vkt!##w|+B$eE_LRj}!r@((o zU}of-OW6UMW~!(Cqr~?K3H7Ih^Yq4N{;SINWS+pX#B%=t^u%iz?Tr5bV$707{x6!& zG-tdsOxcW4-BOr`dW@<>d>Ni?(voWYMHx2esQVP7Jvw z?tT4t7)+y2Jl3?Txw%f5%md7KnQ$2kQWwi+M4&8a!PNrPqQma?j=LXRRh!+F zZK4XauyhC09n!UW0m9dH2-|`^Ho#5}rhf`(G;yu6#w``;Qe0ah0f-Pi!9 zixNr*YiN}^cM5YpUzan3Vuximu>)`~-1R^B#|_2zuJomO8h&_Zs-dA?WYB*+NH@F< zoH4hEZ_=l4<%f!Rp|yxLCyh*WwW7JLSNWVg5*3DG+%E+LS(ILOs-Jj1H5B>bViYb# zRs4wO`F!`ru4JOGfm@q7ukmkPxnf-GRD97$gRZ2$&nzGWqvhI51eEa&{*}kH$CVK< z;!_JU$c#Lsq*C5`VPuV{7&hD~ro*EF-VnF~f zuzjCD745|gGv%g@r8T9RiKz>D*Yv|>v#>r_I}p^iQQeUIOCrjlk;R~Lz&UBNQAljk zF*-DI)Z1*UD#&GzgLD4)$z-!s5fzi$kx|hy%`9|Vo;vyR2NopglgB0g&PN=PipH$5 zF*0pWTz82S%dsmm1GRs4YWFYC0oL4Ah&##jwC!> zf%6*^fb6tykBiUJn;aPHRh!13{3EF6xUM3zGRlv;cXX1K{{YnIio%`WjijfDw=%?Y z^1_%{GT1_vGziMxA3aKsrWCcP7?Q5X!t9m9#^kclx?0qT2jbv=vwc{`3s`v4jn*<3 z?>EWCh98D9;DYV5aEEdJIePjL1 z!j(N?mm`~)CZ+mfNtL9i?p5F3mxK+r_>Z0zXIK+4yF^wq62@ATTST#;lWtr%4Vlf$ z4q_NZ(!(VVUdbdCxAz`iUU*b&*~}&D9?~Q4_bd0kF%!8_%!yyz>410Q8y_#{ioo=b zyYJ_F?*(ZRqR`egFSh-Ca3X1n2no7!yGbIiJ^2Qwp4h2d*V&mRM{D&C-Xq}Rsj8_J z{z;kakJ)EQ876_Jk)X`Pj;z2(E&j~s?6Vuk(t~_Aw9bMQk=0|9TnEzrI-F zI&nk@SYvgTQ%(zQT1jdqA#pt~A@vMokZh`}#-oUzg>V;49L2>7TWh#+;f@{`X0z}A z09*usHxeezOO(IgHR*vGR8picwL%7NOh=62!%Sq2oHS<2+h+&@CR}MEtz5e2PR?pcGSo zhJyYZZBluDxS<5HPytGnqbZ`DxNGo?5u2FQ%GYd6m(?az1WHTaz27`K!5n2Y){4fU zNonv48m;Awk#-4f3&O}~v#cI30lW0V$jXniqj<#=#cibNZMGzmSW$BUc;r}%2ejNA zTGZaX8(@0kNvxLUMQ14pe8%l{VvgD{^`;s~mNybAjaGdmg6i|DmXGI7oUsIO-6Zm- zc*PuL!AQ)CZa%-B7~6Yk)YYqb)ZqjzE7uOt_Z3wwQY0M|d}nTC@~#>2ZElQ!Ii!_imIGre%$0Ue9VCe8FybQI*XYCyKE{mqO7k ztM1a!{5;K17t^bDjG27GqBJw+W$fwUmL>w3c{4JuU^LOoqx&{;Cdzv>xpCv+*){#6 zE@4)2m}u|ImNe6LT(PWucjPe^cxEBY49L~XO$DVURuu<(sg2sd>bv?1W7;GUw$)f< zeVSB%1nqB6D}FCbdvMHaOPQUrIZn@azBv7jVvjT0bV?YblRXY&D3Qu3Vkx845gKLlWohu%n+#7Qp;+CdDrN4MF46Bn8LUD*=~GXy zOr}nFt%OUL&*lQ~q>$zFMHAX5%w3bx&1R&_&!bbqHtKPeoq{QN-KEX=;X7Ep@=|QL z=iP0Fig=9qY~{H;#8Js?fhQ$3moTOE7CPOy^~J(yPiVn2#}S5gm_b#I0~UVnbUyxE zg<+rmCFn^fGGHxCMY5L(bZ53$hj7`jfIJiGfc)3jgCaSDRrr`IK zr}M$d$D9&p9=5=!^GJ>O5*!Or=9hBIn^%fBtZnX#m-5BhLg%g2p-O%l1)#&+dX6A# zPd)v1#+g7y;8i$QwJB?T`h4)#j|#g4`|Uz(>$mg4k(lMzMPB1X^P*GdhYKur>O02H zUFS(QrLjcF$Oo1U(m|MsQt(SO6YMDBg%&w}eE$GEUn|3;6qT-GBT6-V52oYuG{rOF zvaN6^X3{1>OGe6hb^7AfQ2LHcKxQ&=qub&F`BYphzWp%>PubAbVl3+|%xcT-pJ(T9 zdBuj~StV8=$6F2Q)ds_gz8}{Go@nA|-sf3;=~m%7t?6t zS1I>CxEgtHXk{Ed^&_DhNRyc5MKAq&(-5XuW)nK{GMu4~EW;^BONAw!ZRvWNbHy@{ zO_(A^I&AQ)?9RdM zjFj1q{{SbUl+A`jPjXs3!^m_R0ULU6=UiVWX}oNL^%Er}wY}z_v1aonBrms?EQ_=x z&E=%x_J}({s4LDxlFfLQKeg|U9xU#AMK~WXZf;z_4O+;;E~4u7z#iS&(iqyb62!|} zZLhPS<4(9SXLET|mR;bUHJ@C8&)O1RoUu#H#YJlERKc;h{NsA4y|b`PDhh(f?N~K1{;FEczR;A->st)Keu}xRa${p zCj(x;jpy^m@JOvCIL_#``@e$(6{D3hF+cp9`G3ABZ75FN2N$j$=^;XrO9jawU1wr6 z?LuqrhEvg$ACYzsFM7$uCW-^XH7Z z8>JN_+n7at87)yIo!ukU8d51*dhp<8r=Kk(5G`9K%*&WS{N5rsByniG*I|f687$UY zy5}@%@4q7#v&i{XQNH7gmIhqQG@6ei30gIcG*_cUXbh5VL5p<&lI0ieT7WyY6!(kd zrFrzjO7YJe%^+5a13@HKDwdM*rQ=!`S-!Y2@a9@HuN+e4+(;anGv!hBB{ti1om&}| z8Eo~^6FkronoC~r_|`c{d3)U$rxmYGv7EfQd7z(78;dbK*<;2ImQ_3Gu0HZfa^AR# zp{P{WJxJxc2INAsFB-Qt`26r@MKQj2EYd(x;8Cv=TP$MdW#U-{sfH3oBQ#O2iAIW7 zQyFEk^v`;tzYRLz>T9HxB&^EHqKAm2g=;-F{{U9UvlP*RHj01A9A%Ss{mD0L=~wXczJVi$(iiJ zbv2T&ne6u<^zq4)l9WGomHD)D=3-Th_$0~ZkWAF^#8D*;Coi3GI?Fa`7DNpLNtdK$ zi97HOL0m%~RwSP{ZB!cQM5+ZD=nR2;@K0!EB9bFZ)+Tjx_`Q8`qYQ}-Y!zto^SKRS zs9Q$g@wNjUBIT)LlCS>&%b59KA%RZ~#+x^ws2@B=C}TH}0o=8`Ux($to+I|lS1n;y zMw?4uykxaxHiJSdTfH$%jL9}iw!=7vNV4-w_#NVpRHsRIJMJ)(F_MuQGpLYJQ0`E3I!T@8yXzeU+F@j$y!QE?0bxY4`7#0%d~kMEtx|+Fs6F z-e$WvA zNZqBGW|5@HWODN6WN6LN>Q4DxNV1^QyPDI?ZYzR2NhEZfnPZ*-Bgv7>P_&s{-5l2GWK$2XN3o7 zoRBG&XN`}HOLk&byT#XPpYeTM*K77%@VV`|vZhb*EQ-k2Cun7|>)gt@3R5=>3++A% zDC*s<4EbsDvBoBoFtUEhnT9nW%XDI2+G^AhH+`A^0JW`GiSu2$xy+#LsaU6H%`|}{ z?7iD5lzf{|Llm5vDUY-owM7LnOr}~%`zWDIyjg6={evEBJSiX&<$waZ0jo?>1E5_} ziu=nwIk?O_EYGRp8$7gmmrZ^r(fOfl1U<5={DvbtQ4`1idy#E08YUUuk z8GAK5A#$-x3hz%DG3Fxou*q?|or4P|d$%Ra<*IaYorxY=7jX*}f=th7PYz=>B%aD> zVul>BY91kmgE88jv{ulrUoi{Fsw<`;{g+NT6CTs;S%%F*vFXSFx`$Rc;Lesj00YPwf|eb^nO4v#NXyZ>@Y8HML)e{^VpHC{U7eDSQy((+gy0;! z@u*&@mh-CxKg|Qx=S{ zMt0)AHEc*!5DuoGk-UB;7&mWD1y!0n%Mu&iP{pa!_4LHB&6A3;#dK1WG;*oC!0mC0 zV;AF(z-xt$ShBNNgv0@q*&Fm89uG`uu2LD$+-+n*u_gKNw%omO1i4J4R_7JoOuk|l z%*2hC+qy3LsItP+7hOyv?;>GO5Z|pZ`AA@fDK6E`M;&D^k~N`STln)1EOWiE znx9O(eX)`e0;wfMFpUJ2jzaO&o*3;)P=8|=IX<8Y*Sq`m{{Z%Iu_R^YWememg;qTH zN#4Icm~69e9g(t0_o8b50DSOVrPSnE+O~bq`Ta1W8?V!AS+|Tf)k01DUzQ=BSKv@9 zI>&Hv@WiQIK_};cI4_ZHF+00k=c&JNt?avhEfkR>H7KJCjsJc z77F?P?U-@?XZ698HxM}ps55Uz_Shjl9MH>(Ruy5yk<0FP>AV_g6i$(gp-S;BI1CaW zc)VXq;t>F87~LvJ7^<%=qUPKLeas}msWFh5Ws6O%M&%s>Tt$bL^ulIhmP)k3W>=!L z@G-WLT`z~zt|OnbrF*jafTK~2(9dd1bytQ!+<(&^(KJquWIEanDr)SmH4h3H?SJQm zSy7!Ok(`FBE8IA$vN^<)87Gb)g2=CGLZZFe)2F6Ao)uxbg!|=9cE!3Hj@&4#%qUtC z!k;XD*_Dmuuto`j);F6zz%3L5h~mqf(|bEalF66Mzq3b}YixlDMs5^lX%?6>LTF_r zWNW5mU+*pbm>8IsJ=e7ibV966R!pOyF5L|q0Di1cdYGI`k(onI9$cV?MH-}2# zJQY4Pi2X1W$l)ctgK(jfrP2fG<%Ni?$5JHE(jif&T8U1+;?-w;XeZB|DaGa4+{5h80UWo<5>*BO*! z+6v)Sp_=$u0POc%qAo67etmHeDl_GdmD#k6#U|E6r}#HUM<__xD*2eWotCypru z@0UFGk*g%CHrvk>%p&TgB#qRuidd^{@D}GndG)R(oEFMS8Yq=QESI*+d~;nwpmV?} zofmDq#;)xz3-@X_ug`B<;m5TkI)u^`Rn}PP-&%~+>9bk;}#1g@y&xbX!$<2H(2h%ZT8zq>#@MSXe49_aW5atn4XK-w*x1 zPpg_}_ZMY}qZg&xnsq!HM|$pU^}|{$eKcD`S7$V1T6p;%{NhOD%Ez1{JvkwsAtK10 zXj{FFysCdZO`7Z(^1j0&YQvY!O*-abke04hWD(B=pSgKTh85*Qi89l6T=|~PSJaj~ zl-VrKdn1^NvMjkcjPRPCA*BXj3In$wU$t_GnHU{jY{`Q!H5Owal;$%TJ*LR90C({Z z*~gtmKf_*`sdFrHM!oz^btvlN#U|B@IhNm@4=QE5J1r#Hv)O39otZGk&m1}PB1t-^ zSo_;Yia=?X;>$g>6d5_hR>KtXM$yvjygoXgzpE)*`2$W^pSAlaX5h#S-e0sP>?M5; z$vvwLW`jI3`b!q2SV;~{&!I&GVH%dnIYo|ZP-|Fjb<9YR>4IS;zPR0$B#L#`RI)K( z6!hm$T4A#C3tKwjulKqO6?D?h9Xq9#w7C6gih%M-LSm`mj%EAaeD>wb4DrctRWL2h zQOMg-T72;FwAynQ6IGhzY4pz%j_ZCuaqT&O_V0T}T(dI9+VJIJ&__SK%TJk-v88uD zyZSiKXL6a90qV zLGG(eRAqAWd_ydm#Tk#oAQD9kGE;u)X@z|-@JZQSrygpe?5=Yy8b>87;mxjUT(q*9 z@A@8ii%t=xGHZm57O7UWq_+4cUTs>^xLrtREbnrvMRQ0ltrvbHzw3*0eVLnBTD6pE zEAP6y#Vh{+7WjO|R&84i<|&|f)h~U@>y8GiRF6yr$>c*LFex;7d0xs67XhQgD@!s& z#!W_=XtFVQH5C5$%ckF4HfPzVk}|+4$Yv##46ov<3o`=L8=9Opb#qXpinM4uMttOQ z#ilH3+gixIQ`B)_=48(0b5pcR5*T|Zh z$F(R{Wzch~lSmmyG(TKP4qRs0$}>Tj>=f^rNVr9sT<%4+fZ93o<8RPlUd^weG6NKaCx|;hvZsm@ zPt$aM*vQM3*RYwRIi+=FU9#~cp%+Ti(Ib2L%NQyG=NYpstUt`6%FF5NjXczOV)t-O1dS$IOQ-{Bzj&H;_eal|#DifhG!3WW z)2++?hrkWGiWX&B7GGWQG>;dR%BY~&0r6Mwe@p?m8|)9upAI5;>XL#P2@AqcoxG5F z966c2o9+%k zDt^)d%zb%dF7YcgYVMN3I`B$Y)xa0+`r+lw#}-j4BW7O|b8o=$(~bWCy|E(1l=gcQ z!7}EqYP@udX`-m>{P7b({{T*A1Su#hn9t{+$i88Qv{R?DciF0H(|Ni2VWu6Kn1Ow# zR3y`!$TKq75j4H0*^$M0czm!9TxFFcm7I*kuQbnmo7Gv!{`%v(?H7p8OQMr2mS}db zcB-N6UrExxcu%bgKp_{YeoMdCnGRU)BR(OO@7o0lb zX|Qegh5KKzJ4>@+gsP^r5=WM29vbG46pnuTBzT%n`g5`%Xv1A1<@MVzhK8W!{h~#6 z{80~|!;GSKm;FE5tCx@%wet^?NX&AIB1!F8$jgRpfamMwm(lELT%=`0@jg>sIJCvL zX97wRIQ{O4mtph7cJ_8|X&Q#`v5xb|Ni4A^`(j-_&V?2<9A0cK-l_ zfZ4~iD2m0B36nCnb7P%Pz7kmk?wj z!QR@6S*TaftvT^qXn`wj<-~p zY-*<}di2D)a|mcw36e{h4x&c!%^ZlG=3ZbmP0{$U*+uN~k}%gYM>G;mB#8V?6GHW5 zk+khbKI@lS$03Gz3=_OsDKobOo(Cv6LO#kj>-cvWwb^AFa-$CNBGRoa6%?T_`C~v4 zV_aY|x8CKX3h<_qLu-fc{9q|Vuq%a_;H=eyfH+9;|Z9WI(s~njlHD+ zH_|eETncD57<{Bz39~LP?=p1E36WaeX00?)KBuNMiG zxXLql*?K4I;>2i>+EkS_c70w*8-4?){qw|*1TP?TbwlHjDECVA`%b()1`^UT@!S=z z-$|tDO}X3pU?5hSR16)nFxi-$P*y!TbfPU&QyLFmEKeq06OuQT%;kz&%93&F<^6Xf zmrQ3M{{W-%dHnQIi=@p(Hd`|WUdrlarJFe(k&}AHV$Ex{9*1muH)u^4{WsY;rOhU9 zG&JX&tm`~!mwc=e>Pr@4UuKFxa|^-`-rFsZ%tjXi zf=PwT8}QhqA9=r*Ph2BMn?)qrE>Oqth6L}{hirT z!sX)yA%}&X0;8=d#pc7raOUERnDIw8^i#~5e0X_uBV`fZj@Gl8J~>hS<((0*vS#u* zeC27RGg)yfMh`n5et&Yj@FU9~V2((%*kz+glFj!htIc=o*9(@5Fj*oFkgSlVWJw*C zveH#(>1T;QE?dl*STlW}C}AUJvaMJ{4+Ys`Pv_5UU7GD_B@eJf?A*Sjs(I0&omFG| z_j0f2r<%-WWJu8w0;jO_txvPa?x-!d-bc(~{gX1X#Ih6YU7>1`9K(`lV24;q7WQAQ zs~?sG*>vpe;?~aVG|17lXu`>&ftzeJS{aY$ zBB>4{Qy8>Hel9DkiDAvM%Lne67EHSXw+hJ_Q{lmG&+QDyV_ZW#Xr@>h)w{AZ^9dwG zd9OS{md%XZi(5`(G+Jn<5Q!=5rFo}yx=>5y%MdyDQ!QkS{mDl3`B%$-OlBaDFeW)^ zG_w_;XvA+KhL9Rpm!1)c?%2{eD)p0bMk4PQ(+L#RrtZttNvDVI`g6n1Vd9N1yp#(i z+&mkcRxu1f8d%R(95-*i-dKwH76TDuSAk>#{{Z5VDgOW%xu%mbm`?<{5yfzeir3ui zd3FB)cyk5dn~jXZ?#_R_zw%gAEGa@+Rjcs=#7J9+LYTzk!{K&qyUpLjiX zr`@I+ky*l8#@G009_ikOS0>2k8EOEff^_d#Xj&4pgVt09aX67LdY?V>d8lE(B`a?(+4;A{DXBaw9#~M#6@#@BwZf zSqFqh;KmCor-c*&$3usLWRl+vR95Fc8wl%e41#GiSXg7n1G%}h#qq93oTf5VWP#LefO3SHV&l48OxEDz`w3wLtJ2|5W z7l%(bUh6LUecAVTi`lafMX6+OB-=JT?dY3 zw7y{#?1&oa#qYUnnOJk_mrUc+FfuPFVH9GIed_6JH+GJ)tX(OF95m$8!H71zy6rfpH`xmm-N(MR!_#F$95~VZOO{lm%F_%xIw!hVr!I`D0%# z?F$OW!!*pbyY49wm7%9mhRaJMXu2tQ4U7`RtZf%9q+R2iV~B)6JlgC~$>P!kyjMTO zaBMFcDb$L#L^T_WYErB7`SroLRp5HM+eW+Z6|G|B<@~WLYP5NXR_P;P37#gcZ{Dm; zJdQ1i1Lu*=KofQk3^b%5Om;j&Gi=eN@k<>Z^$GPw;oJ4>|k`en0mG65fA z<%DBaIrBfXdscEmPS4AV<*QRjV`#meRiVh`6h^(Dm&>bLqY^EO^r)bTTD>qkI4oIs zEhNbVQll2WEiuI6A+c-(g>uDd5ogNCm5x-}jT*+Z)aXf|<<_{nGS@^-lM+>xpMDZy zT`2txc)pm1Eo{VW`FzY(%*o%(VyOuw{M8}%vGo4{xyk}7Q+P`yLlMj`7L=_>;iI%6%nKRL&v5s0fBLVd>x`arv-7#7dfhThG>-;uHx!v$C73ctWkoB` z3`Augz%OUBNqjuFfbM+$SgFb+>q|vvqo2O@w~7A%-wuTq__&zX>j_)YD!25m0h5Jh z*r`SeEA+z%<2TF6%`Hg&<$1GySU`(iK#v{E%}W0Ob--xKEDo$45tNmbDQbnHJ%@jm z8-?s5tW%7N)~dGsF_S76_J<^}@rdGGSEt^+`EvT=Mi38sjC5+!SvOLy3fm1GBL z34bBa0lU3VKM0`mAbd&Sj!)}`mXULFEP-vUr>_yZmGtL^cuHwzI4U@jHw)wZHx#kQ zT64s0G_b6ytX(cD(nj<(^6@R-ez;`~yBQp;yQqn2#~i-tynZiVP5q@rQMrz+kx760 z?ppA-lHg_9s^qDmVlOGOQT!)w57!xqIM2nFVzuuX1>`60{5?f*5(hAMO!N$VegbZ{ zi5TMQMsA}F%r0{ChM>JeLu;OQGJ1YX6iijhhn3z#nwjKYrcV>E!M!l@YFy09+C@xi z0pYBC!Y|bF#>l~r#;h7KPYn%}E%;juT!$BM82#;fY1qp(2bLM4ky_a@^5xb|FkzoB zJa6ql={&+zkKMg?r#vD|jM|Z{CP>~$7DHP^whcWqzuaw(5V^8w#aA&8cIo$`n6T5E zEPofSAN(`7(@#w_pE;dzJeBu?%_-~5a`68Et7|3g&cu{C4*t*|f&L{LaX{}G+sl_s zO_%Ln*2~VjJ7xO^Cndc6ZJClR&;J0zjvqWcQDq{7Cm^yc#&w!Z-P`HAWg?`B?nk`L zk50G>&)KZC3et#kG0_>eRgdA5fA6KU_OEEf684RIE<=!Yy0mAQdqAE@>)n6!{$Sy+ z$YnK>CuPk})4Y!2o4xZJ&ZfW94c<9worc^a9pFVyqWUd8 zZQPtSmiK6B1e%Ge=kAf-JME2L)9lQqZH=(sELP`GMtD*4QMycd930R6JDzUEGR31T z4z1cY)0B{VM3=_KrnU5^Ew9h^kNA`$-)1ydF8NYH)42z6?7P(FTfK;L=Z0ooVL@h> zhrC`EGX2jzys?=Ls+w_w92s{gNw!swylxp42NUx8R~Nc6=m_O;UM8${FG|qV_lE%l zrL#J5?He#K%36&d4FL|PjU=b*isqn8R9&e{JKJmh?}W0nv`A7GyaLDWuN95y<&Nnz zO7vjXuwhVWDa9w<=}u=09H>!^P#9Tiq5KxT!qy8`X|b2=<2>%v-A2c|T>AHujCf%Uan5X-=&#Yvo{{Bc|=D@kS$( z6Iitc)IxQ-j5PTy%wjn!7E`k(_PJ$;v&VsTz>tthyqBs_bL)w6xs;960$4`IZ6doq zo}VUl8$T_^-ercVQ985>9ML|8SUbAq$Y~S2BS>{S<0-8!VCG$CbzNQ+GRxv;&hfsnm=eZ!mFuSA#ue}Iqm6&G04%$8dtkb=8*+W#DnjJ z0tmLK>x7uQ1t15F^(-ggN{R4@{{VdOpa~?XBC@ob@Ff4(-;75hG2d5UM)N0N&<-pHXMnCU!&MCqI2 zk1?sV(MJ(e`W!k(A(<7{Y|=#pamkVq@eO%hE182aL%t?Cyzgkr(#TSH zCC$q;Qr*N$jLh5#w!At%$~=cr6j6{fId14O#QL&9_XjL{G|uF~Sfm6C8C9CwJiaRZ zFw-gqN^BbH+8*0}8_xT3#B!A&RYTXn#s2`El>Y$bgQvvN8)IVZWK}iczQ5BEI2D_T zhU}>nOxM-vI6|rGgXbWUxk|u{v1<3Q0*RB-E#SJX2|a();6?++t=665klE;nSmPK(1~4QV?gmn z(szsld|ym{(0jIxqGepYkv-^@v8@a6_o%*y6Erz!w8spJBzY~es0$rdMK4bZeze5z z6?C*p$frt|9}h3CFSw*n72V;ijFIzL#d_jBBbh~&9omIb)s2E*Sw715HmLRA&EtlY zjh!Z9LPt>-&ctD6v=GOo&$#)mtr%WSjX~a)>&ET^B zepg}Y3aV1ccP>|Pz{p0OBTg^)#E|9=cs#J*6p-X|*}e&ws6VsCBubn$rFZ&a0n5)O zlX#dg)-qjd<}&f>W~t8%s|=NygDOi9g6eZ(4%8P5^|w1z92U($@kyyDSkttwx+kDT zofYeT$A6wRpvu5r7ELso7HJsxcaexcQ-;lqyz|8d!7>s1Lq@+DIVii+)6143Gi7H* zl?IfPr6M|2Q7g*V{A6`>HO8Pzc`^sotQq zPYQweKR#VB>H{U%c=H0-jAhWMtb4nChzIoz1eh{+yq> zsHPxwWo;$8DM!aH>h9a`zcKpZ9wv03W^((br@&v&YLWB9W;A=*DRTnb)8cLUZ;uEY zQdk9#+#E9l!Eif&T3~A|NZ|3q7lu2VWexYY z?_QryEv|{mF(Y|tqFI*V?vZ$8GVQ6I{`q8V;1jROlfm*G0rDC&@^ZWQ^ zlQRoSj?EmhcWQyTIAs^c$96-txDO+U<)BSLCcHcxCCLdJhHk&{h~>>QG?Ga=>rD!@ zh0yU3ekg)%5M9Rm?~KHeSv?|-nucl%!f=ye<#(3;m`zA2nkpyMY8tp8%vLL#c$!F_ z7jw_$gOob0o1b{5%gJlUKGk$&lfPR{U0$?Kb;BlSF&}8l zS384y6SFR_XNb?1fXImh5fgPh{iICdl8YtM(IL&=9 zW?Z=mC9!DbWfYp7=9`p_ZE){GwZ?xvr8CCT86=K8y36en-*%o^$&EX>!^r-JmNKj& zX;c}LRaZ_q5?5JdS=sDkn2p+_mem-B2M$!bMo6Ucf<}v`iVCRlaJfJ43~I@vDhGHZ zou_MK_+6MRcLN<0eOwoK(TPz!IfPF7GM{F}nYAJ18b`O+5Q6c%9?zF`Wm8sfv{nVk z?*9O~V)kD2cv{=7Upnpjet1nrDe*wmQyt@l*l`}TrD=y)!m4-`nXFvEUwX?Q-E&G| zWJVEbQ@p;6zjJdz=ZT>vSfnA5q@EX1Am6=?Z9!W3;zVtqiH*BmUa|iGU#353g6zG{ zDwZoos{QLce;t(PztX#b8t(AIU*O^!@LftL=l<|YZ!%`{adF&<9Cjw6IkXv3fgHbF zOwBs6l_<(>IdTty3do5n$ooTVpIV;LnoVuE!tU0+TC2FPQ%%kF1ot9 ze$_)+D0y#%5Y|lEs02kDMB)A|Lp)kzrS&}qDL;?LBvrNJk>2(k4XBl-)CRP`Y_wNu zF%0HfMFQxav{466&7BAIBV!wL;g^FMX#iT$C} z#AIDDZt27?v{!od`gvhl9thGplN_x^m3HAz-d*&5UoVvO`W60UU6WDlR;^@L}9bns~j;OIV>; z>}T&Gov6*r&bVOPC^v}I)-Crde*>16-WL5ZKGCC+k}B{E38A%?mjwHi7y4l3hXW7_ zu~787ween*Ly-~?GFVGk5$DD0yd1oHJh?27v1Oggl14{;RAklIizkurvDqI%i>UL<)| znu4~e;nVkE#y?Z^!w8KVaQ1g^T5ZA`O{^W}+`pZdF#)4ebyhIe>RDDheODTXE1AvY z1X|CW%ZQ}*WuW5Fe8;rRpMOutV>K1qW@UmLv;CG^K~Ae2*R*$%<`MOB!+KJ+72^K@ z^9U9hPOHZ=MILS2PRLNRy=G}7`&en+eJhvM$~r!sTmgK+jV(}vao2kNF?5i~Aa3|8 z8>P`-5Q{NehM3+?UoIR)4pw;mq~%*Ms`;nPLm-9Zl0|z)oL9x}rscW80%VA?5Q^>K z^1jM&zgqI9B!k*eM4i*BKMb_-AbV(fbldBJpsJ4o6{{ZZN_;QoE?1e36gswH-W{)8r|@XsPc6F95P=l2Qe#_aJp1tAuA=)KYm8 z^hqh>y?xZ3D@y%3uwC?SSsRtB_qyTPIObopOYOCu-YR&)bLmR@3MmV>Efc5aN z;{N{tJTk=?SC!NN$HmCqdi%f6*1KVoGo~euTTmb&hYfL>n%Kf5&SRg(tG%$4AB&&?T*>ES8DrvIVV{K(Hv!Gy# z(V#8yzsnLsJURf*Krz2f5w6E{PHRT>^2AD{b0`){n6Bt)LB1fEK(SasuZ4)E+HLof z`HXv11YVK?);Us0=GKx%9FZolHobxq3xYaszI=}(jZ}Bk;5NuEJ$ALKH89z6mt&aB zmQ$k35liW)?IG!!m)3j-{Q_Q{~YZ8eF#A8jsUujh>BUGkbwDlvvlBzE_N+3@;r*UM};lfzqC%L1rH zf1mWiCFSB8GD$E-bxs*fk1T6hD;h?$kn`VRgCyrWCRSe1XmW-?UpDaMpwoqbl2P`J z-lyK6+MC2egov)~D;Hfh`ylPVPg;3m8FHrb5%2xLbZ-fHylcOA{;XL&mE&MaXvQ60 zx3Oc!eprt)1hT}_4*54lrFi6`X~iY`ZT|o`ZCH$!yO7jq*<&w3Wty6`uZz>B3CqIu z28Bs>v@gqhk;oXEO{2`25=0WsrX+z~X~8?kR*$7)=eItSi6)4nL~{o|(>&%-W7MGT zkh^809(CW>Z0??Yr-eP0)I6l6550|Ex8Hc{b+y2NG^?+`^+Q)><^Lk?vO^C1rlhEqDhCjEnp4G~MI*~b)z(ity7ZqWus{l>ub9q;d9Ejf#=a%{%D(HC;|r39FC1q` z6`kFXNDZTo%hBJQpFhtL$0r4Dd12x!D(_^1N*y)_z(s4m4wJ)~CBtz`!4u)3ykG(g45q#S$y--`)>r!Z29Pj>0*!bIUZVW7mCUl2Cv3 zNT;S5L~-S!X?3JbxPvbyW>$L<+E}9FjPJ;Dz+`PeDz}TpTd0tCmygSzToab;e9me_ z@kp$LCldKhn0q73$5GzPvBY}arIgE?Z%E_FW~R#ziaWCt=CU$L8>E{{3>j*4!x&w2 zIf8rH1bQ$<=cSj`dr$eZW`91HNKT<@n}*i?+ShNN>4%WFJ5z;95V6w5sXL{2z&ioG z-FSNWV^q;lp7ko1GX358eDKVd8D8YzZ-%#VZPWVWPcW95NJKU8v8_5{VFfj#D=Vx< zlt%d7{{VOSU?&V}Hn>IiRNdkFVq4~qF1CadXe+rav{Wgn9q-T2>4=_Oz>dEay0RzX z-c2pJ;o^_yQYg>(o7V(LF5))%RnJ}hFddYFe-97kTx&Deh^%O!xRshqZf&*-oVnme zLWfps+u=^~rqZ%|$EUlHo><~(E-hGA(x^78{acvCsx+#!ENe?`zmK7=`~5H)ODW)1 z;w7w)#9PocLi+Q;b);_}3`!*3#`U$TcjeQ3CEP_3z5?QW8>D?8#Hm$U<(D<%9H8Bdtq)gX`Sn7#tC2UvSbqQKHex7v0YsP!1 zDQRVPYw2?o?^%%)d45>amoFvEqD@gRa%NFZq8C{wv%rMC+GBeid zeVc}Fc_nc)bLJpejbbef=(={2l3i0`$q^n6X(^3-w`R@SFFcVPv{TFM`Mkq}bCzQq zlFe|$*_k^$WKLpR@6XAaWfyO&mPqW5M&dT4nRsjbh0Uv*?&q0|p{LBkiqwf>_KPFa zQM0$6_?;ohoVyq^200RwX4S;DpKFj-Idaj|^Q4k*KsTX*Ah9(hifqIYJfWC6Uo*r~ z7+N`+uR%3WnZz(jsv^tG;&|hocoBGH5XBs>jEdg(SG(J#D0P5~x$cuOz`6>`tkEjk zg8Fev$Uf=Brjc;B6H0hE_-(WbTlc=0hAhI!v9E|mcX-#427{+^uqV=>xrW}`4UOr}pNu|ub%vGKlT_L^3a;yN;K zmo?j-B#wgFGUCN%OC~iA>MtDk1J|1*B!Lo15fs^~6T?v8Z%z8+ED}&xPQ@|J#Uhry++FB5{&+bVW|J(E zOt;V^pW+BMe5K_zpp3<|ljX}ET>1#~;P9?qDCP>;e7F_Uj3ESSF8$?qJuxO%Dv85( zWF$*B24*#oBf7~Tjxh260A`qsW+366r4hBzJAq|OO1}X=WMm&ZZo&4Fu_XvZ;h5WR zy)q7Q>US1J^1+@t0<6Rf8^r1>{`d|ln1rhEMAVQ*IDW`*_rEIQ@TO!l7`>XYT`Mu# z{KvYc{C`Y)L#52Ly^zu`O&yHYZT77W1W!R6=;|lBb5&ImO#~_ za@3ED8Kr=vCOpw*%hQ0XY8vqX)of*EStD1=&l1}k4X?k3oT|Y17y53ZJBeccBK4ze z7Q9x|64r1LL}Jw1J;64Y+?QEo-~MrWIy$k_XPW55Vzqa!;g9!RRjpjZrI$t5W^VM+ zd^M^sPdpnlX7b`gsJs6SG;b*^oU4sEa&U7KKU_3+?*X}3)RdI`BHLQ+u^@@6>&2RZ z=n1Cia_D?L((%anbVxm#5X#rI=Hncf1(Hcja{Ekwe@-v?(uyfxHjgFI<&m>!!CA%8 zq7rR1@h2=Z`xj~09YV(rLojm|@>Pg5dNOsfYv+Q}!yZZkYZ~^HT9Xy{Zpz0ZQIer# zY3BUthm$jyciQGpY8gSu);PowMzr#v#)O%DMA#T}nas?w)KmaaIMnK+`e8&_Jd_O@ zlt`e42&t&?Ge)%s$G+IhXIP7-@nxn%6+{tv-h1jz^5vRx&FY zKZv)4`E%=mP;K6n>Hhx!Oe#rt6>U77N8SRJ4l!orumbyc;pr)_!(Myy#n)=-wH7WL zPY(VapQp>~j`3}F7b{5J2VNtzd*WuKDv!&0+t0xrG>d+CjyIG#t5DT#k(QV9-_D<| zBv+0&h?trtoQ1yVxCGSJ^SIcHfTv2ln<=RMcSI23M=- zuf;Nw<(pyq-CPMI(-)e?5<6bTUK`WAldjeNxJw)MU}Fll)z_bioN8^-rx7T&p(-Jd zb=BJTUS5^k3M9I=y`!HN)WI?@5Ik13{4~_t`C*CSU`tqeBz-RR!5mI4Mge;7vi&^& z089o}(~wlOZMh3=t$<}9fPtds7`Kk=Z}|Rr_N=gbkwZ}xiF;DXn#S9Rbij%=SQeaP zd!-JZw5izC(+d)}0xB)1sJ4T_{cyUpxdqUc0_uI!g{^|oK&!*YTe*r>yt#V%U_>OF zj@5M!FsxMNMHXO3p%~-+gc*KaLE{CV5atF zjK;Mqa(Gbn#6v5X%|q<_GLP|PrsWZ$yY;3r@Uo?_EY1eAslG`z;X}nm9A9zp zeV)v{ci>SPU-;?gjXc2yNjv>GkXtP9ZVIU2h%rA5Tu0@Mq-s(+UR((m1UdcP<2KY?ujOMX7z!dF?#&FUUSma>f%Ov@&R*p07ktYrIT5)yt zz|4-(f+)yTp;?|uqKTbV?NuX<$)t3PnexH|pUN~3MAs(RqYQURaSbxt%=IAV^WQVk&Md8Q@sgFtt!ao?BvlIS&;x zGUlkFU1=1F;kH9qz&{OeC0nM`v^K}DUx;EDnL!)gW8LFYw+Nqa7xzpgvTs!!73CZF zPW~%;a_5c-j3JFRIJGW4D@qUNi`q?pXcX4xe%=F4hpszPe9Up(d^tR%d?iyUkc8## z)Lso-#IjE(J-u+L995KB*IiUPVvY{m^u+Ndn20klkA_BHI|teP_xWv$CaGg7Iuh-q z+gi}Rw=XTQvRaMDY;^m_#NU?G{c)+48d9?9kF>i@cHq?R)ipgi^`-`5R!K$YEUf8z z<)ELt?)Tu8`7h_we{6=5JQR>+SO+l=39mYF}CVk`qK`v zqpS?o7F%&szT0YA@-2J%Q`4*$qB@(|wH%>9i+nUuwdZq9sq2I-9nLoob*KF$e_SNd z+#M{Z9m)@dF8nx=Ya{3&XrC<2ypgZ8D->f#jUV3B;^`w!@+eCb=B)n!5{iFZK9r7B zSDw}B^8@CXjB2eacxAb6Jp5|kt*?y4&MbTB7*g6gbkntg-1X;(QP!YlP>^}sgp6B3 zUkJIVKD|G#GjX_f3wtZtHx0ud5NkMJ`QS${y4*)>G*P67YEG_CJO~?D; zPFpuLfR%EQW%C)VoU0+&T-kR>6wvWTV|*DQPh?$$%RHHK;5qLBL}_NPE%BCVJ4+!B zuw_Z^3lNAB2wik6vt|A`_WDy2N!fjwme0)sHoV47SQ{)Gc3|!reTMpR^XrXH&&=gA zFlCivL6=x^;V%^#X$F+px7?9R`SPwS+7AX}GNF~;E4`gqc$hfjF5P|1QT4^VD_Vrw zq!#o&Jut8qtyxGdCHF5n4a1ejqcjP^Sh|hQ+$f~3h?AZf1LkuQmMtvVjJZhLPLHP< zA#LZ~fH73HVgMu|pWM)R0Vj`r?yp=s2))?aN_S_@hpqwKI@40&YB}_{bHd_28yNUY$StiHw8-j~0|qwWgfM8S-*tdek>o5xGy zO}I^b@Q+g*v5?Cq&cVe~#k6up_U|1}AG^)Rl0}d!mQ`B?<(GaS$Gf}K)Zo@hE(ub_t|TX4PI$LHrI<+?mNZx2_^e*~oqFQE zo7h=gs&Lak+VT4|1n}9(8RFRC+J4#+6kFL~?98rLE|vhYUKQn);^=>9 z81_l~Q#Sc_hWOJhqmV0KicH>CU0+D+{5ZQV)5*DKIgG^FlTEmE;C3i)q^T&BEg?#*L0$Rv3!L3DT$3VnV)Jh z*xFYA01nu<-o_}_TGbmMc`>Cd6AHz+E{C(* z_`wak3SmhX28ZGMN_QlKN~hsObo(i9v95ooKalAyK010b)akA z&%7Mz(pcimWOGq8Qnz=Rmn)eiEqKJ5u@tyn9j_HO`eP{xi#D$;np%=D%_xmvV`vw( z(XZjJJ@5<}WL(5(1ah=tD6G~w--I-Y;M_;^z@9GD&aEWZSIUS}DIADsx|gJrOt2xD zZH@U;5XqVB`1?k7j3cR@Rb-m-7CfeoWa-`BPu7DOhLK{lcMF$L zU%RC_(;11Sh_p;(eceG*%Gk9f<-@^Fd--ADYh-RM$8=B%Sydh3;P~X{hK5L3ymLH= zIhj>>A|-_bj+;}(`H3%9hB^$g2)3F=QFTg`nb&2(Ce)7WRQyK0-xsf6PF--e%Fhz* zOZTt*;v&|(R?8N&UFl$a8lgMH(>%YgNk=H!ooiP-K3!>m3&w+iXxt)STetE2x?@!q zjwDdrRU}?5H@P0X&e)7a7-*fO)bA~Lsj2XO^XvZrKF+eWnnso4Wz(U#`?37+5@!nY zhKAvpN{YIo0n60-`eF;Bm1GQ1O%`I3Kw%OrV=%|XA`Y8jGl@x5I99PZ)$GUk z6lld(-;Dl}BI51My)O7Xe_t#j*Wt8XRwVb7y_=JLFmmI&%3pq6%a9Cj;qjW*=F_vv zyWpV!+Isa*g@Nk0)XZH*@Daq;?le4?%b71(VO8LnBagc!iB<)AV8fPzXPHQ$ z3au*4m1XW!l}i2R#qD^svPeV^%pIGa0G}j!2nKowNgo zVm|M#A9)!kW4wlFr}$_sSMZO!>xVK)l!)+no+#}A^Y0iC7w@(jJg@C?TvS?Qk1Qy= zlx3)OHTYvSb;OKj5hUyjMwiA-qq-(QHJcXXvbl`as8EW#+(52-nbIy zGXf`C69!q9V;Z=nGbF7Z;zsnDp zkgR1{M3S+ND3?y0H%Qtlb$RX7bEX_*W6yT1;ecV0ff6gMuNHed>^+kldw04yj(dzJ z_>O8W#)!xs-pI`RcWP7a49;&O>=`)e&RB+KZa{Rx$CQA!VntR)3;>HKZzpVthMHOl6z824mbch}1imjxQqJGykIDI`D4;yE^O z+5m_H)ys5d9ERCX%T5|So_DKH#%l3`@@J3NW2!*PVqO4JF zPJ(6q%t^neE?AYEl#(IcNWw&`4J(o8JISL|Jx{7*!xW42oB`!A;My(W}6>jcN>|;(To|e!Ur0(QY zYO0Z4lMv>!EP)mYP0~FjBI65IO9q<+73<~ejV{a0z@jmkStUK$M`zT`mXYj@swv(@ zLC+G$4rVDmpuV)P)-Viiv3>%aZd1sU%wbkXR*BIUS$p9SZv>E=1Bk?*e0O|bS-WSo z=aP6=y6pHW6(lP3l4}F$ta0pe(N?;YHQNo{!5g)xrqxk5}F{H9G zBv%38in@d-+a-7Yb5X*%~s!>sma@qu#IGxx``bY`ldONwP^}I8{j( zrF`r3!9REZWCUUSq7q*DpNN88WK`aq^BqzMZNSLhW774J9o#jRe;Vp`kT`)kH}a z)u!U~`{;2no`}=L(O(lQB(TWV%u5wU%W_qvhnOENS&=}|_Y6}?)m{U0SJu1YXe$s& z6=PVzLCTnJW<{#X=)dN8g~$0} zT_2FOR@&3LBnBKdCOe_*O;MCG$1!9xT zeir*k{1{{5X#5G3Ck#}(zb@M+*yzQr`HJ0229X>q)`+ReHPg1 z)p0R`c8=V^E6PHNUhhi%MI1gCTKO)`r>T2w9l6dIZ0P7J*v`0dTJ?!w43lqp185I`Qiq^9M)l! zSEaXl`QVt5PXi-0pZWXdao>o#PV<=gH;hggs7(;CypGwsQ}v<8kg zV`*{jjmGcO90BMiLAD>c*(49e*q(@)+$rLQ2(R`3`@kAk19HPFa^uDW1nh z3?qAliCCO*hV`i1pzF))f>Ks-TX=X@nLFqu{*O zBVRcG09+> z+2j;{L$2RkF=-jt#H@bv`h7pH8ahe=H^m_ra*ztAbU)Se7$NI%@*GS4)&7{G@ELr+ z5B_k$)kKx3GHyKar>H4!3l2|CnADbQv~4i~@mebPZ&Fj1uIKZ_PKNO#sIYzW_xf9h zl0uNeTm+J0V9I6AV&hFuDRDe3$t7a=z)kU3mE3G~Bd<8vFHR2SV|uDq`Lu2{q3ro#`zjV@NvMLiq*T)bmK8fgEt1IP zC}W;ntHu5&Vhy2&Jhi$Kt$*&Mk5GG>3WJASyor}cxN_1_rOl**_h~bElOew;67hR1 z8*fZPv$&C>J>PV4Ok#6)9#xsRo1N7kEFolgu5)DpkIuc@cWGU)RdW9Tv);%jqg;wn zL54Zkm}Widk0XN`g_`s-3O22pN)A=1qT9{iyzq6~37KbflP@Ki$mQBK%m%Kg*}dh* zO;fG}s6DCVtH&a}O6AMid%m6O=|_EQ81y(@RV;H7oWoO`<%(5`_$^k!7lcM-5-BxS z0PY9R&kmcf6AujnUmYvY3pTUDVU3nq+Au`y8s$DK+1Mq#zn&RZyf11UI|%%H3(9?P zxpU`JQycn>U+MYw6=h@r69KBmU`ze|L0d$74}&J*UUVT7h1e3~M#KX(WV68I$i(%h>+EECq7aS956=@Sg_t`Qk<5Sq7s3bq9-T zSC{F7LsGKrFLj|-<^KTdKT37Q7!qDYQe@qURoR*T`UCH2y>LO0zM@k|E|YGQ;_m+d zo+6F_?v_{<&HPi3k-#iin3~4I6RF$JQ2mr&>h?BfWX=phTfb*i>E6wG%*Aj zX@p}*1y(BYGOfYiPv?ul;H8W>l%*P=Z-T5Cky0rj-25B)bHvlal#r6sM}1TAl^1O) zg`EN&;0%@f_((zI?6iLX)ud3&dSW?w(FlG_VExtEaIW*BmmoTGBNFW*v6$mS>dG z;pz3nZysUh;-rAIK|Mo`fA5Ql5hQ*$rKmri5>b)O%C`zhnaleUyhp;;Pp2)Om{xAq z9i0m7`3#m#GjmRdlS$ecyJLy?e#axqzL~t`;n^ zWjjA9RstNPE0%~;@In)P{P35{tWLrtAPGj^Ax&NX07`YP5Kr$Vr4o$a`;wf0mfu_~ zS(tMTKDyg1G3qEL$j=pc$0O4Q4%5j`4`XJGFA6-GYY|q6t{}vdh)0B z!shEuAfTSF5bI?|pXI;P4-}_SWkV2S9h?20j#h(%#op8XIG-sbr1ycL5{TVZH>7)X zz}FevZ_++5ekA;zqTqAqFKac6kxHb#63nKXtc~|~0(8!@~cF~ZRa!{;qe01K+yMxbj z&k?H&%(9t7+NJWd<)@kz;i2Ku;y(v_Ph3;P@v&gcwm$;gp(VP#rSO)4HJYCbl~^_P82Ok}z;&caNzWhBwd#;S6fgoJPlJIKk(J;$keV-9p9 zvVpC*OTwTzr5m63$~fnRSK6aV6a}LTc2*qtxZ}I&iK44rb2SaS`gpN2Y8@=S%Or-i zvoWH}#-oTl{ZtQ1Q+X?OvK|1U_M^AQ=!5y;OiDp!wl{@oaa!?nHkSJG$A21$6xD^L zREur%#;rxd-)9JIVBFi|tz%aGeQ@RIU5&t!*Os9!TBe|p#m^3;@hojDcO{y0F8AI| z6{N18>0B^t0CWLVa#Abx!^L6yt|adkweYFbsrhY<2^p-Zvg30seG5@ke!rL37Wa3w8p#}7FLnLf_3`5^4y2hWH1C+g%bB@D zRblqE5?S=;{FybTZF*^IF(s$pWOLrek)P*ot+P;A0e?+H!m$!WedVPFdQk-ga~ z%bj-^h3^p+0B}86ZhTei^~O}X>T0a!c@{^j$c-J3@mjoAS@g#SpjLbAMY@!$P!{v17>4lN z7=uo{>G1ymeDJAD#h1!MjsmBJSqA)D;nLH@!74lvm)bK`;nXarfes}IS>u(gFpG5k zQGOx!*PbqBHq}LT1zMgKyNKdOC8Sh%^qG>?s~%Xhg3(&iP#>1+sc#6u8frS-WBGGx zzr{=z?^vm?b~va!Oh?>Q@O-^6L-B@;6ncgdMzsW2qjX34?SN9nvDDB|HKL6|)!}Qg zGs_T8J_Xs5MU)^sLwz&Lt^!9@Sip(Ik?KTkYH(F(>^}PW<2fXtizVV!e-=#X)xci& zulHOZX3E8tjh~Vxo~n3D5xB9w={Slq6rG6L=#=qp+^b#b%LYul=*@QPCZyR}50?*m zmGl01({9es>Pv6{M6yEG*N@s&hFUf9l3rN8d5%Lc7l7rTBb`!L;hVakfAb=)J)CcBU8ksFOzCUcHHlV%|VjMLkfWexruUY%O6KUT+OcWupsiL-guug z{wtmAyp*yTrOoCiIXDKlc0G$I{{Xe-O?M-mDa)&`YjYTSAm`=r zDBkWIyp{HdosN*r^QBJPj65<#GVsY1fMxRmBFYr!WEpKuqmH|Hd_!zVv0uchVwJNw zs9MKu|~q>@Ds;Yb~V#Uz5B zTY6$O?GO5E{-o@<+y*F>CzHi8l=$QO zGJO94+Xrw8kX6*&wcq7{q^|N^Ulj=-e{bc5s|!g7eipaStudC5EgIaBm8f4nyztq1 zO0t?*S7k{R>F0>1M?%rm8ad_4-hZw=p=L%|7~ToBl;099h~thd8oOP{tthiBzZXBj z%YU9HSB7|wQRd3!mSMpxO!t|hlkG41{P5C4_FP%4qy4&kQbqoMUtB}06vbOBF<=Y@ zyV@?0){-hosHF79fd$t!45}G}MzxcT1de;i>1Vt8;gaTRkV7`dp=OVtiwXt7*M>kT zMjv^HPoG=?b=N(wx-f_osAebrFc?X)GjcT?{w{lBjEvDAiABbSv@PZ_am{-)rrSf> z$Wn&oC}fUAG#tO4Bx9RPU>)X~>rGF*k#GHRR7qh(Hlw}1(=BOchFwERd&kdL-2q;> z%bw63qm%6XxIWDc8L8o)wGq~?`LxSP8tM3{LN>3^wps=<}=O?ZN!ycrWyMBAww{#a=x7N}vS z9Evcl7AuE@F#KPh8Ng%AqcOV1ekvMp*uN|p3@WbaOSc9>gU@a3#$8Yboe#D}Zqmoo z!pvH&-U~lnu?}XHT-DT$l(Ix_@thOk^2M^USuM7gj#pAR*l}g=K#VC#Ib$;eYG%%{ zn=2#lB56{ZZ@YNYg*xslh~<@I$)w|qNgsC{mWGpb4B`CoGUS^tn9S+}nNd1BWuXG- z?u@vkZPXtx&0VNWvDRg&1v=4r<5MbCh~aHlB@(>e8XFax>$t?iZxE>pTZCFaU(*5V zK%z+#8x^lw>_s>H0`FRkGpGO-2HnWsyoWq7y|oxw=7FEUzL)<1e6TcmfyJ#bOYp|**+_?GScI$}%s;FX4=I$SRN9PswXYBOokmf3#4FYMwd?zb?B zX$!&>uPT1HY_rF-L7w~c>G56tF)9VMQZrIM>F4~hlh;_HFzGeC_;z~g9`;0dx6+sY z03uwvnHUSA2yJT*-ahr@^q|0b)DO4;Ul%z1Lwl>!m#!OBq>T5qvW3}YuL2a_J3hG7 zgdP$IFXB#j1@eAaYY3u>B9-EHURN^@UADz-D%7ykh%AS|I(p-RK!%pBQCpAdeky*Q zaLXg1H&ivT_`3Ax%M_9r*a|JxC}SN;vXDkLiIthCSr=76s{nrfDU`C};;iF!ko-Mq zh(RnaxqL1TvJKUbuik$wXn2~oiZveESBl;=Z|{6ZbGVyM;I(}_Tf#oH)OY@Lz)04U z0q-bT_B6Qa9q`O#)$be-#a7oA-Qe)_!I6;A27ZR~UB_R~^u@s;WRyF)0Pc>|sW#eI z{{T2wW`@;Ol&ZHgUCWOlge?miA#0FZPFsa9#DBf9vfpJSv@WDh$Cpn-fSgw)OGsGw zO(`2UT6{RXlVb~5a`fAt3d1J@jy5*iVdgnuWXR`;a8-1so?Qu7#0}GG=`bUu*hYM( zXJ*jSJvjS8Va-Ke9wVB97~Q@{<$)~SlMZ()4eKm9PSA>M#)8w}(}c+D{d!je*gH42 zvoa}fYlU)a1LXelOD1iijyVESx_?evwHhZv6Eg|DZk9P(>#g@{qx$3aTS|h%U{oX2 zT(`dM)21D^v>JT5-@iYIVDCzkAS27`&lPHLd2UzJ5@^;^11ib|0dKiRqSx0HNS!7E z!ym?f8cK)V{_>t)m}|2sSLQ%xucHqyD*EGFW>Iiy7;&+*E!S57OPG=tNXzBWs!0^+ zY7!=TNb25l{i)@duGk*e+MS^kz#xJ9Iiim>9KyCra;Rg<=0`n9b92zro_OsTJ6e3d z{Xvz@MhYW#VhqZN$pcy%X=V;#J?QV{hFW!HIF@f`%YsmQKNey`nQL4qSn|>SE#sk? zzte@xcA9n$M=xi)iMvBLo^sr?POC_A@8+CdoUk3{j#A1Bu39EUUoZ>%zL(T_bH=0P zZjO?}M&}H#{Q2+8mNau9(f|%uGo{}}unRN}!dX*NXuY0j<>&O=hCbOHx~Vm_qMmnm zCSWzGzo#raWOB`#OFT~_Sq*Pd5wh|%W6b&2)5`&;5E$oK^8_YvN+_Zga*AS$nf2+& zQxXV(DjIcy^~+?JO*av&X!hH3{&^#Cd$VVA6uoQfZ2UV{zdsd?)bw z<5Jo!Zt*w!;pSNxwKuiC8u(8?;`!q&rZE^22-U-I*Y}RUW*_=`VMM7Mt_V73iQB@y z96oI`W>|=En~ylMM36uym9p=UMH!t*B92`NjGX;9$Ft3yhE|e2qRPB-Ng_A?jFQWx z>yO#;IVD8XGJ8~gpp4G6(|N!AI!LoTx$o@YgT?Vc{?FN$2@H(#&z{+BHn1&~pz0~V zo-NGwV4gHC&b^RrwoW3|4kKV!YM&0?et4cJXOAl*7+OX4f-13e z(j_W9lUQ@-wi-s3X;@Jt%*_I_$rS)X&q*^5`FHTk&wcS8YAnW4#EpKW4=!FsAnoI8f zxH7I|Ih)@~e`JX!WGrum&2w=}0va7TKd}aTu(BT8kw;9$4NW8 zs&SZ;Iht?!XRss;lR)oe4h9K@VvN08xFWHmnzF^1*)690fu8z`9 zH@7YS0BMnq-h%?N2h>}55S56~kh_NA3I71g7RuJ9%orP1WeZ@FZLY=QM~oFIB`YF6 z!*+}>KU(5SYct12I#$}DN4z|IHmBSJ8kS#Emn)gHICwdmtYYySU-ajQCw#G$4;|G> z;em}s$}d)qKZ@#qEHKN@Nu>c9vexLb1^0;>259W?BE5J&O=(%=Zd@{!bXI3xD__OJ zIG^*v%QUQ@qs$RxL{@WjI{BgyYe-@=sU%R2c$#sROtdg0tTQnrY$VH&UAX=j_*eIc zzg$BmPVpOvq)N)hN06@dC0I_JV}IpbNP~$f!hNHN%+2C9QI&rO`{6^&RuRU}cro!( z;YjW(zIcp<2Z(U70eHRVUzQ}gOHEeBO5QH$+b)|At{e(7f*F@)L2rX?xzypEw8(W5 zNkLNgZq|zY2B&Ia+k%Vx2=}bxD#@_gMHy{{ZD&REye_ds>$-uE&@4!$uv1H^&sQ$i5KV zx4Xv|zUBO@fx<1*j?GBetzy)UO8$RbMPBd+bkc7U3ynX&OcatkmX@ed!x{U?`$-tb z-Zq!w=TC#iedjz&-8xoS>%stb?x<{kubv6!6@Fjugp7-pK^?Yjy?O1=3bui7-dgbt zHS2L>N-qiD&z=@Ltxzdbb$`{qErgO7hP`;kB?!*m%@gIz1vFE8F_V8>L7a`$=Q7bFx|Xt8P_KTM zR`14`MoQZy2n)bh%qw;Lu)<4=axuw5$HUm}`kEPZKEkF>SFkP|^5DC=Z21|mn(HVo7R?$EONDMdqWd%GL(%_Tq)^+YOHJt6{W9ov8{b6imIi+ zQR<90E=d4uF<%ctAL}O~KFc&15J{kzL zl#hKEKkJK@DPgkHDw$)9@m7_NZddKoY)NDAgHR>5JJh$p{_0CE^4`5L_GS@@6bo{( zHLbL|ocHB}40&eGX8Xh|vcTD&4|?alkMrBtpua~inFie6Uys@rU$lgQ6Gu7pAEj`% zWb<=rHpU>Vj~e}=)?;LU`>?sI=E>&cHGn*()m=-<<~4cc`3ZGt(%!f;W{XE2VBB9T z8#43QU6%J$nygHs-&NlM^2*fF4;GZjwIirGi6Vv_T@U=z3nso_E=mV<&(|-OwERyX zhq|v#@%|r}&1O?IlV;3h^N_kjFSAP)q<+(vJIR_~>#>*6$h_D802ua+)XE^X^DlR8zIb0|Ln(dJ;;nqKVNNbYbHhq9 zb4tTzmL+*z6#P#GHK?6*YtL*Ke5lMLM|zz*R>n^dN@^$15HsfFzeNLRD%~Qglx_*U zjt!NCH3+1fQ!bl%?P8ykQ`Ztn6z`RZZ89!egl=heo}cM<8c%9`)7p5&v8tcl#vzYj zzcGm-l2afpsEbWdE~wPfF$Mus$$_aTFO!jd(X5pTUu-krC=k3Esd<}&RW70l(; zr^~seoK363zr2L%j7tt;1>6l8M({W)EIqa~~0)Sb}|XD*zHl6<`1kj7q2&uI28 zSb;CI=6$CvK26cq>y?C*zCKpebLWTA?QERJO8(IvPH1w!El>L&^;G>jx@G%QuzOND z43eZLwPDFkmy2~^GY2znY7Rm;^IOO3UD838T$FipEN?sZhI2fbhHBPKmR@~n3MEbQ zWqqP9T)AN8vlPt0k;p8LIUpeIL#R&a+%h+x}4F}KSWGR73sn=vQXivTNB zF7#?WF8J>M0Gu_9t+LaifX!M4z>-Mfgj}al0Z>@B_n7xyn3gzQvhpfzBUPg=p{ncZ z-Y&QUIU{Dk_*TCEH{{RjnfT9sHHe%jAk#?kqq1&ggmNOFN$PWksqft#lRk$+T zV&XsB3}ZU7MXoj7)^?0(nJ6Xj!J7!$Y0jQ!3u@-O>7z|KU8Xlew@M_ehBb;t;}N7* zUrZQ4u2wtf(iGx$6Y+n{RJljO z3zPi5xMK>n%0sUe0V9|rPU;c(@D^4K**q+&QZsN9p+7c{h#w$9umef@DHD52)d zS_FmedE6WCvc1J(`RfV|uv$3ktV1_>Zp&Yno-cL-eTm~q7jGXg&j?Wu@!DBHKP~ZJ zxGQmbR-BfD$LeYV{czWY0B#r&c;#LnyZPcv6^y`lZd&d9iq{RTAl2kfpHsIl!Ts~V zR*l@bY8Ez4TzM~vjl(zJ?JvTDFTcB6tw-cn{qC%?@0M>w<@8jg>6r^s^gO)Lc z7A4By9(%m&;%a?7!&ns+Z2<8=4!@B=@G_0SOZ+@r@6!>ig`-s2#ejmUE!oe7NA&!j z8V>s{D29X$?V-PKOcZyJZMPL#w6s&;)J^yG#i+mPc|V(cU(@S`jn(Z0g)TOuY!9X^ zw&vSvpNEzr1P=?t+hUwjUpGG8<0j?GDn+q+y4M@z>M-^QCd_e`mpQE z8`3jzp=veT@bGgTeDJo(-u17BMB8$joH&y&6iFRmC+?;VwD(7^U9cpc)!*GzvR%EM=a)W*9t$nB zQFv~k`r}&Gl1YsRdE%hs)hp?_`D0R4tY8%paXY#ASdIO5{cyuhGD2D!(#9y=xcPmg zwi^Ec#v_s#)Fs-%L}_zJ_o#3G0GueDFRWUNK)wd7awmPK5PwSVh@}ysUKUAXnMELe z2OqlRX{2`ZJh3CbT+1MK1KFQV741Ixw6;zAgXO*krF7=G#FpCen-9lRE}x#m1_0&$ z8d6xI(|%8>Ni^)C-lN6W4ooo_W1HEt`Fzxl(#1BVy1990BldTe0yni-*x+csXb`2r3a9@U6svvFM0*6{L%l%uAQwi;?!2wmAKpwR3qzXwG3fH?(rnQ!Eb^@@mTiWf!e$Upm`?p3Y{n zIozxg5fnKt`7<)cNzBzqoPVP}<$rHU~%MN|(_Y61$O`#6MLtITz440>)^DHJgb8Q@1h_c?%!|c(?dg=C-Yq)HduU&9I;gj;`g5{bty89%g zv9WKwHnFz-<{EU6W;aNTUKw)krmwBVTi>QGMqzasQco4#D~l=tJh!6V%HN+B7E9DK zd_d4KKh$Af{s6u`?VufbR-Jx$lQG2^EJ}#}7*>?@=GDY=++7aF?k&u8^rkO}B?i(X zR_gN}n~WxPSW5Qego z)0Q(mo*k&#Vl-CzG?znMoCzCj3IRjDPlhaKZR!YPF51Tj4*?uK2cu2ae(k-4XM~tZlJfuUa@C zuRJ0&x}4}dOi$01aAeiegnUkIj=gu^1@*+RB|s{whza~e)al8m8y^n%n=KW~Sj4{4 z((MZV8eA>k!+p(wQ}(weqGLff2sa?Lct+Gg3hsnBd=O7++afsf20m*Ut`0Hq>^sUru|Hl@!5` zlNuPscFa?WqcQ#DAB(O6mnx~U(_wQjA>G^~Z|R6+l0-=4i4__`v@D$4i*&Ewj=Z^? zQhdT#-WSWbF;bP^m=vhzg0ahWY2t{viLMkQ;C1;@zL;vdl&h^3ZDkv++%D|ibm@nQ zR*|OiO#bYxJPYf98CgcunU;uY(t`~YZ6jH>qOI{(zZ3o3YfmK%P8n5carrZFZ}r9b zm7gt`n(hF)sP>SmGRU#&+z)jiUoHA#=2XLo)pG~p4){aq;L+3@Aj|$O?Te_#)eliv6F*FJ7r_sdpnK~+-k+nl*2Ig zg^AKJ3QW3-A~;bcvLUdcs`DcS9im!Ka!SXj=BQTd5%%2qayZb?%w<-0w=Vg4ovyk; zv@#JSd6bjIr4Q+d?}(hsN_AOp8D@${y$TX_YaN(8hF{?;{{V2lf=_sx;+b}mRFFRPYby0z$Qn~e{4{O$%Vy%uNtgDJ67D9EKLkJih_C*2 zISTT^NyKJR#O(3DuS)Tr2NdUbUcD1`T{T$|ql#I5p4mo=_a6G;yns`umhSUq{{Uzx z`Fz33&0^0g+oPC7)7AEYO^EXK+B>r>f+Ar)-iz8(s_C_vH_XSUEOEIbLxg)br^c-Y zR%ytFu_a>5GrXKybbN6h~KKh7S}%Et{R zMAj{pMLDylr5R(( zHmt@=UdbVOJEe}`k%>36;^~OPps_#%FNn1_r{{-TTI)-i z8W5Xu!YWHb{C1em>JqEJ{9xGzaGKrWWPSet18@4`@@DF~nvS|xH@rMtlDv*3juy&} z?@UB9R^}QqE|9bLl`;=<`fgHKoqcY3fNYF}E;x!%e->vIh~!vA7Z%MyVY;$E7K_rPy?XF(gp!acd?a z_pO1XNk^}q-dKt#W{~CLb~G6y8$_h;ZW@AZ&Y8?tl@CfABzH)KDQK2PC+yk#x1ycy zAC?!onc6_LdmpP6O7~)wr-gj6Qv|lF8(ng;@BaYu#pm+E>kiNeslV)brqX{hx^}fO zG%1*h8%s0CJP(zSFf=X24vF>pVYNF%U&_eQWl+{&-y+#$PmyO~@WIG6DHlo*ADx3`;A>?H%z{h92)up_b$EVY3OH%SjMLw@ODg zD6hldj3EBbBgqWLjBRBgL^X~ebv31tcu>br1eEo!NY(|Bc_E$1n%QI(cPhnJ=0z)A zwmh&bFF03n#ll9s_AT&iIBJo{(+rd4V_j}LqphW1;UnVZ;>Qd7M5GZ6agF#|rDWdE zo4!B%y{p4Uh(jXFLthb-gMXeZ9h)jk$m$q^fOEnocKt$@^RD zNH@^=<4uG&CGIluvr6n9zV+yMzdS}#u~&%I0jH+>f6fhaEZVE^n>fDl=+yE*o;{l} z7?R4WIBhptc#==Ev+IdtoG^@zO#Bx7C7Ya{o?GC19z~=?A=T>i9%LvX4kT&qNQ}38 zIN~hJB`&SEC#tJ;=Z20D@xAIIIaNt+ga$g2QZL`8I6Kc0X=*k8jmNULI`4)d>g^_x ze-!Bqo;pHKg(KS599UBlv|&c_hL+1}2Bg*i+CE1P8!p2$m$3I`%nqmD%a?0PY6RtV zJ!yvhmoXLh#^>3uhDb|rG=z9(8{LT{RF-%ah1vT)Sd2$~#L`7UY@ZTKGJcqh`$B58 zx_n%TqZTVqb;HnL47|Bi%t|(M;kX_3VLVq49p5}D?Qs=Z?To-{l~w!FPb=xOx7a5? zTr@de(xzCbX;(n0MGeH!RV{nBf89s6-eWHwdEQD#T}a}Q^xNG{WR_8P@unEfGe@Fy zo48enPkI2_y7l$1(-P$~9it@am6f!$5Qc?k2CEdqjhD~&mFMN%$mcG23ZI35y&-YD~P9hEF69&vZa>p^PH9nYJBPCy<%h$w>P+W z&zG*)NOfOLt8&>^QOdn=`AWwIV~onQbKz2f~farLn;z7+%sr<$vw%tpE7H@c|)e(P| z__I{e$tH_dW5m8E6_ft}+4|yG0|~kPJZ!LAS5#i(W~j(W#Tg~5BiCRe9- z@YDL?ismMX*7gyGUkBb=MbFC&+lQN{{RprmRpas z3qhmaDIa&|L&N2Ud#3=dy6DJ@ab&XNx$>y`;!Mx@jI-qAwT4VZ07wtoN9{Tu)tJ<& z+oz|+RaRr*0N#!N02uCO z5e2=KxuX`Z4d41*e@rA3acTyl*zY87wPcz_?sWNd#9B=px+92^#X`3Yc)8P`Kd8dS zxopS{u{I`^{{ZRp^TQb-RhBZ+M|i0!503qA^XFg75lJ6yDaz)dj?B75w62{~j%tlc zSKJSlG}kneT6p$gVKm<8_a~U8PW$6k^H&A8bQ)!~I26X3wbb(`7tF4lM!PtZNxu4g z4k`8eV0%8CcT+`gX_e$F=El8nLzr&rSzRPYZhvRs+y4LHlv;;BYuT$xS2_wZqw1`XINzaPgth48YLo9V}?vit<7F9Rh`u>;^X3+}M-zf_s z+qaimeKCGrqm_IH8xkqwk)xB3-O|%Rx#dq>YQ*GbYFQXuokF^QugiQ!?rk?J$P(!G zW!^>uo8l#n(^xfPAipJBm^##`eaX|UeQ~EN$C@8BLEtN~3C#Zh77Q7ARxv50(yU3Y z-w`s;X0uTEerKK|1GF<7BwNLDihdUqzX)C3_TFh3q@xqUO0}pI@4%m)G^Cd=mmEF% zht#pWYYnSvGuOuc53Uho_G@dpBk4Dwq`WM7*)2yb8DdhrsIoZN^5}o|;KwyxSJ2fa9?yGO}#)f7%7K2LY)FF_gJdw*c4;%5fwdsi3tSylw2AoBst<=CWnn5%|L6=xnS#v{)wXV5L#E^T_v?v0s<9O$s0_;g z0K=%8;Wb%ff%v9itHL@j5!t!&`r;&)IGRSt%NdU|%v`Hc=y3z&TiVt|46|hl%#Nyh zOXo`c+Wj#MX_AT*F|>v^R*jyuN*f6S&-C@h>6D0N+Mw#9$#A8^t|P~&1_jLlhEl)LH68aZywi67cWeo)6U!s)!1 z_{Fl0E%5nyVG=^M;gTkhwa>X$3&SO}=l=kWI1=qKL`mdbRaaI4POJPL1+VqMIe7$5 z;iUFx9rP7gfK1VvshQz1yCo=jz))Y0_G_l^Fzh4~SwLa_Aa>&zCY>%P8@1&_H2scgN*}nv*Vu5DTm*C6P^> zY;IMvE@{?GHfJms+8X05WwKeCT6W!?HvI7NWno$4jf%|qby;Ku$+cn0sy?gIv6Qbt zzT2TlRAkDBM$Odb&~-Xg)Zsr2+ioyehm@!!I&CD9geAQFF&}jGAUUPSLA5mP{b|z* z8*2@#cGnf>L-}CJv8tt&W57j5Bob+`q%{qutK$6XFsP2rZC$R@?$}a- z{{VaE(-6#wSrCrxbhv*Tc}3=W;z?wRFw=?nC^fGe#@EO8eDL}?v2oUSd1SS2A47xM zBveba)u(|t_*?-Z8V&ydmJ@F7Hrx|<4BRQ@=6@_@A?*yh%FOI8Xx`Ye@FXuIJKOJR zO*HCuyM41+g(-V|{l^t|r&@h5%a@Vi&Vj*VIMhMTGaU?4{DvkOjD~Ssuo5&mIl#-N z=1Am4J=~PNlnu zNS`*+nJ+hv>W{~5dZy#O<>WblM6s}zX0ICeR(i|I?e_p+%8Fx>HARkHTk5yh%l*E+ z5;I129?-HX_jWgy{+L~Lbdr*3X|uXa*88y>wCChT_{iM8(Ua5-G>Hk1Hv}IayON_% zYX1OC9Nc+@nli<0DE5^cxD0^C{{Ws6g`0Y)UPJF!*ZE=^7^%&;sM3UPf|^FbLG{GB zT}9Ao=4`#qyll=-vqk<``#(MLCcL1=9W8TIq^SP@{X=iYpS_RI4(V)CQbXgkX}91? z#izdCEHV_kx}=p`7ByAk)qk_;{{S??##qLs)mcw~jnbg%?XnK?hvkh_kXKKXsOeMu zdvgA`5l<1bp@i_rKKIWJF}BK5~%KWHh?gx5?h7NfNw&JTRR^ zl(`0}B{xsxzpZfkQqPsNT^SZ;660SVv0BW-_@9 z%RIfKsh74izHGo6lQv01_)+)N=S{icR%mC9tIAxoiGniFOFJzo?C{Fxets0hY?&!4 z)vCL}3jy#OB#}H{rZi4l*?~G{S&CWz0P>`N@2(y=`$A7>jTTkEBrK6m&r}n!gvECM z06uxx=FBT9K-Ngd*wI2(~u z;`@xa1hc9I+^f`<9$a3(`NLT>oT@m>G4exr!PexFpX1-UtC1YtkZPFQ#ov^AlTMcH+Wc3~HG`kJRvAYXeGPhNd90U=r5 zNJx@N<4YbJEVE3FDDRG%)w`!U?FMhNZ^=kFC(FX}dn8F7ot8xX0L{{Um>B|=TC{{mpz*$5dv5L0MX#wi-mEP%afCZGR-~W9UHi2wlgf*c=V)@$L#vj zMoFG({ShRKCmJQxRwAN6+i8T2*~`@J>47AIS>DxxMpiE>|w5ltBK4R0+~-)vSU=NoMtm0g{gxGBlLcp#1L7gW($ zU-y6K3Lh&b;Du@i1XW0439#4~5X-0{%65}1H)X`I!nv4Bv@z+%@1|x~lFvF}(wr=o z!&TBV@!DHuXxWVii%$%)PcBw?mQw_UUOVHF_|&%1z4Y%#O|hh1uiJp%Bz_v)vIOPR zmK6grn|CaiI5yLXm&d(-OhhCZp~j_;c%&Zhim5|q-xcMGi3y6e)MXMYq6(Xtog7TH z_<_ati1QXv1n@}+jliqdo|`#7N9&1}SR;8TuNIbd5EY&lPx0~Vu(c& z<>+ZelE%z3uddkJBr|-9v!t1c!U~=imx9ypN1xXXoR_llE?q5^q{v4cuC$B<%ufmz zcINtgu@XFiu*|8;Z@e-b49Qa6^=adR4%Cm>(l=To7V=Z6FZ4 z8hD%yLu22Dk{Uu8M{}ekbLRf_0yRAO;bhFDMn{QxZn53OXnJqg(-K4!NGakQ{{RX8 zcx93XAy%enRnEiKlsx)kC%La^%C~cPXc>GGC4c@D)$-pRW0jbW>@&Q3Y?k~Hul2(h zTan&^X*7=C6A!%OZ!7?2lq7E-6nc*xXOm#m3H13MSV%-F&k!M)?<)6_66kiQeZL{T z8#3rV4|%m}ci)yEi%vS%Y{p*aSzB)KY;3d7e-<+lyIGgr=4B2o^2-d4sb!lH_jSzd+eZ4D*J5RMvXWDx}MAG(CO4+CE$X9|mfVSCZ%pco( zMpO5?^TTUKbQG1+Gg!48{{W5of5sIc&vt|mqiizHs0toBCcG^&S#=?oW*g9R$FxV= z-La{)WSC`^Mjk^-D6IW)MfUvUPC+tepW3C7n!L2)?<-BYV%5sVY4GXBDf~&K59fuF zZqI>DOKL|At&&n{xbGUhe_36|qG5c;)d*ymnKj4aK2^JF8J#MOBWTUtBDUJccrOp>pABfSV;h z&umH`Ds63^R4&OK(e1`O_vkrdI6fS?Ss-|i+9xa1orkYH12j@}9XXAvf+?p!+c;eofnQ6!6w)4>;I&xE7)3g= zIqvWHf3MRHk+@z(YKU4f<;$<@jTy8;h^1%M8q$ZqhQ#0!N6%I>)}pwViD*`+{1m9? zz)1)CU?fszb5m-aNOBRh`f&vc?KEmMlcjw3^1#ennn?*8oU^;w?`@Mtwdu>9cjb#D zWdbuBJ;PvO+-`UZWrL`Cl8%>`Czn#j3Z(eYn^1j!pw&M0R18Iz)Z$r zXUoSScrq~Mq)ADC1U;jjl0zi=d%$9gFVC(8wONv#(F(BXvG`It1m)|F@T-oWg!MmM zFeX=5lbnGBf2J6a3)yP$)P`l^0hjQaNlNT+?{6P@7-;UAMOW%v87{7#-NqKy;a7x3 zaV77-dl-^EDe&uc6<8zI$Rk#mgL#np)?H)PJ}2#49pJ&%&|D=~iO5 zt-8K1vm4_%B1as1CbWrBB$eq)><`8Ef2DEQ^UG=+qZ^9bp)a(n#MUCMnP-j8to7tM z@~$M+d2GwE;f=J;;DD)7;6Ge7+LtX{mSQhZw(+lpr1@bvqSzHk>el=}ix((jT@^<{ zP>%7$UOA$O?CBN};gamkM3A}@NE+j732l$NxlOd*lsi0UhG&N_6o77WxvbbqdD_y;{czk9&iyWyUVnntU&{gV*-V;Q zP=iZySI6Ex?A(Sb`CPuK-JPI7;8Dkklf!`o&>?ae<7g=XCY@T=UGM;u<)IAXjCDw% z;w@}ytUoST8WK5%w%agly6@C6V|OnsJ1fYlD}5yd)lU_r0q4--JBgK5cDb%9N2nAy zXEg>kWvy#Xt6r4ElqN(x$QzBi;vk3F!J0M|2UEwnUSD6P2YS0JM?7LwaU-$uS@8bq zGgFE3mS(dO`$X`8By71$*SM9UoQmje-NjpcRKjKEB1t3~P{|rSD7)fGMa$V>Mo-MlAHbY{JG%5m5wk`SuYNSUO48w4qfIoa??ALQyh)M zTPeXtAO=5LVurD?iH+n@RIicy+v4*qId&+e;v;*j&dT>}-(Fnt3tPkX!oPGg>Nomv zc#*tcc$NVCH&?-p$c;F7n}h;9`0=9BMhli|+Rh{{8Q3Wd6jKHUC{&`{V&D~s>cr8q zd%0rXm}SgJ+OZObTdWO1MSgVDW$zxEUrY$)W^^D8Ie=zjHX6$JVwrT&GVimI9_>Z| zd>ru`63JS-TO!L=+l9KUV+I{WW@;o#(dtQYJ`|B9Xo`#!(#vVJ%o<0Rh=->u3bQ@F zdw(~*QKFC?N6SkS*(hDXj62 zQa<78`a5y;@nK|vCpIy9nWfA+2-I;GUhyJ5ex6to1Kiqndzji(EvK2^&kG(|65tVP z+iC+|6Xfmn#9^pRb>`cji+#Fsz)-Z`eKCE6{q45Gn^^;!K?s0&J#lLmG-@^!bzse2_Z_Wl{Y0v5%c+AHL(LTmZR)nmwSIP zr|I|b!!e*V$!o5E30?F<4Yb}ao|u+7na{ws<+vQbHNWny}B#+<_NgPQSk{#B>x zhN{M^cX4*l?>Iix$4}SS4V9e|lm+@k>2UimvXlGY4-?RF+#DOP`tb7pxX`xfa|dRm zjEm<rr6wR#Z=-vO4}MUCf}8M;7ai%(Hx{tDl}~znujya8PL;F zC}?)^Vzfv#1ebxs`$vV=VeYTx^1@|ci!s_+*noK=?8IpsFL%34)Bgb4#i{V?Q_BRd zMdEn<_qFEoSFQYUq@Kkru*xV;{{Yj3n=?7^t7$;4AhW#j%kO6K@1t7bV~%Ey72*!5 zq-7rx@*KMJ`d~wsliA=~tjZ@9yx-lmCPp9KaKkW6vfH4EM$-}9?-E2iHvsPU^(P97 zwvC$30!=)=U)K>!G}lJx*T~i?Md#p)!M9(g6E$f-%miGO*^k@Uy>`bfHy#OmL6!di z?k3nAlv`y&N z^-|UNx!Nh@FtGzttirlm)Kg}=pY_9K2rDX*u!S}W3I6~&X~nnekJ-$PmnbEgStLlz z3_lzD$eO;Ku{19nkxuD$TTxQZ?z)QEh9hd8@8#>YS2LHF*^sPV>dOwMwzDBf`^`r? zca?6qT&m>8VlG*=pSX}s9|e&CtNDDf{wbJg^BG>uW~2_p<@M?NGyrV*nIawJohitT z@Sn0I(7_;`h;`s42eG^R6=L(F#nm zLm7~x{k63<;~rZUlkK z%el$@oMx)Ft@8)cz8yu9YF6X!>xLr4R)PPz}jv-G3_Kq0@CJ4ae`b#kq9y#M-m8#mIKL+A;D9yIJ{Sya{b; z{YmGDwPc5ca2}zyJR-cu&j!Vbn2WC=UaI`${uaYK8B{+lF64^xd(-{CxL1>0ohBzz zO1i%4w5#ef6X$_X9m9kw5oqRT+pgRC9A%2-;}=5jBe%X!a&Cn5=ZOcinR4wVshA+H zt4sGD%`&@VUoR>MB#w;gM3TcJYDT)N8}Xh(fS;}=h}K!5A*MhylTlP&)xDwX%LU=c zO6D~N{{VC&W5O@z{c#&X2@c#gNa|>#rr7W*zr^a=g?>Lye7WOXyU04;&Yb+eEESG| ztwug7{{SpXcVeV&8rzqDU;JUiRBv!2cGNv9LF4|$5FE3+>9LFgZGKc7zwwW1m`@5w zpSx_viw_#Uj;FdDrIww2X&HgmXj{AvuC9$I-{Gx3Sh$8%VMbm`SpGh|w%ZE~j*=`Y zB3#6_jOAB=saR5Su|A=WBbZT@ia~F{IN)tqC99=%=~22r`&((jJxLJ z%lj;2UR<>DB+DW}#;TFqrQP~@;?|fI%@u|qP_s7~MDEwXzI*Mk#kp36mN|H)o!uq1 z-p)xLmX&;lG;>Ukw9%$w6Io(^1*Q5>`e3eLG?A&Ttqs~M;qWH^01bV8DN`mvVKQf1 zG(Db)oyoM3MOm%ZFz6jU``B|E*1K(t!ot~u$7}xB@-@p|5}B`f1$vB0m=nmke534< zL2FAFj+eOLr}-56ZH)}hsy)^&!s#bJ_Tx@4Y14c?)C(2Y1?z7X!`7a-S9DrRrPy;~ z(t2Zyyy3TuU-|OKwPz(FHY$OnYhu)T?;+ltho4+Un#;`@%g@ACE+{6tmNIX^-09-$ zjuq*|rfRgy~hoA`Qi^Eh%s>1}Xtt{4_%fl#M+NTpkz^wW~H<<6Api4k)X zyEH9L9u*@ERRCXq50c{9FG3rxOV?YSV(N zI6I(}U2xRf{{XiOmk=ZxORB!l!jlGmSNuR-xTo{kN=F@53-y>)^nU9n?+@{Bh?Cg? z*o)hn(w^lXX*v1%VP;txiok`7#-rh*^Yi8o7NDf9%)J)3bESvVt_%Wd0E=_!vgmSV z<9_b?{QjL;fsWUX>2o@ds^tFmN7~=Z98t?TS6~AN5Dr^uzjY_`z;~m%C4rJAb_3OZ z%|E^IDlN6~D!HP885*7A+jX}6Y0%-6XJDMjdzi9P48+<=&x0#pch?UtRzA`U@mDVF zx{wwvYBYmVO*M>r&H9dgGSWw%(3sJti2^X33Tn#nFw|1K&Y50&Qw4MpK^Dw}fVI*dk9FAHzl7Y~0PL(dA?3E6i!mv=kJsA%`kPYa$`3hPJT% z^qGbp?s+S})bC751X9lcUkVmdwz~I+;CGtrJYGTm5ptxxGy zMcl6sil%^vuk^ecDjQLA9*zA!4wOs?0pqat{O<-8AP-PlRgtOKE8%+nm^p?cQ<6HfQox%;?)BiqEF$3< zp=FNx-{p(usAE#J*@8F2>C2uq60y+Ms(5W43V-s%I%+SDE6FUzsOi^#o-~#+HA5q=85a{{ZzIGM!7plGcWy9|woLivIw2{`j?SxKP|~@}>>61$GKp?gzzB3pbV$ z_74-KAHt`BxMF#|etj?oyi#f0&wqtgz7O=`N!6{5Lm4v+Z78h6-Jj*xRrqQ-d!Q6^iG8>8i$LcWW&0QMdkB&PAQ?`yeN>$gW-MqVI;iK=a$>gA`J% zNknO0R5Yfbrkm)>EnVsd-Wcyu<&A=wC)c?;_mxPKyZiEQ(_w^u&P_C=nuxB_J6-X| zd&v;z*A*d0#cesWw+eId^T%?E9+yaxA`w&J4RPzf6T1o}RxeewaD(0d01@)Uj%GCXzenpqTfQWeq?-NjZE?vdX)Tm zc9px~wJ#fR^R5y^Wek#+4r1>z%Gr4msUmmr$n>Q@U9g&bQx?(HXsvrkGhM3BQD2b9 zu{$zLmzpQAf|mulvG4K6H_o?oz!2u%Atl0SZ`!eNmJRZz)bigMn1p3`wq|Cw**pWE z=kvo7s2yDxi2Np%<&H47^>#pQ{{H}`A&vryx{jr(96{u?+X89V@oPkDLsNDnyz1p; z+5p>IF8B#N1T_ELqYzYSgpn6=F2Np0+1Vl>FeY=VJoN_ErX65mANAY zrly$`JiJ{nfX5$juEJ>+Kaa=9{{R?YX3RwTs#K(MMpP?sNvjy|lgC|2cKop#9u~Qf z2&L3pMNu060CgAxp4f8%lGWIW7`3K>qj;C~z(79h!6P~?(kQ;!s3p^mpE~d5hW593 zOWR2MHfb(iek|Pj8nK_4kju(c4KRPZwOA8J7@#Q z_ETIO)Dy-fx4iJD3;zI^f&%on>FHc5dwhm68s=$EtSoqM%ft860ai&^Sb@5!DdKE8 zhA+EDvU3R$@c#f`o*3ywvKlj{l`AJUkS^AV4#9B-bz*2U*+}ag*;|30EAE#pW8)G; z{bK5Hl0?$aA$GGZlZ4GJ%x(%#*%u>4f78dsPn1#6|m0xBthx%Kd%>G@6Q_Gvr(SG@gaW`pT+mE=xa?f z32muft@&+=g$P85Pt3oU(;T+(7Nr%Jl~jH4(+{4_EztY3-D*iz*rEwNxyXk|^^cBXslLB#ljUG8tzZ-5*>H2zM(Hnu~A^e?{yiC4l5~PQE z5*YC~TKI<}{8$PUmiS!yayMaC)dz%=McTX3z8bbEr6ZYYwhN6G`cxnJ!c`en&8F@8 zbt=3s_g4=dwdC$s#F2$slFi{GmL*X|)Hhst&~@L!H^ZnN?EB@~?LgE3@4~;=59S3D z`gotq^7>#a$RYqy0@m>-slwB{R**FTzVYYkU*(1qNm8WhC248!?YU~7)7Kjt4Mz&I zkErF#`r*TFjY`+gd6N=pJHBTG63dU9#vUTfgogbkvar zV$5F?WGYnFpX#JjxyN|lu>GU{s zC^g3glw$1B?8bVY?$UYjSLuZ@Omgs&E`lXTT9@f#A&JG_xVl{A>VVQK?Er=I+W^Cx zjopEYDP9dm5|4++97J!h!1hy=iOiQ)NLiv{Tb1?H^Ojv9P4_2a7Lm!9(OVrD%abBN7F$-u2-L2Ntn`%HJ~JGd018J zsG5Se$Z%QVzU9(p{(ED>(WzSa`r)$DLbC0*vp*=0f@#q1BoSTiPoEATh*CLaI#Imp z%NeIE=Mgg1YqdQ2;yB5UXe?MlGTZiS9D{{Wj#<8|`KX)Mesm3thRwF!x<%1z_=df`Bf zmoncJG9upVDF~UX``)8NpDnAl5@wD?gb5^a1?tm3{@iM1q||mr&czU96VDSb3#5JL zg1hh3Vg^jkhIEBhW{op3=2UkZKKxbbL3b}vBt5MIpK8k0n==w1j?Ja-3|#AM+P^{u z*mK$Q1}exvYH>GujvIa*#R1~$fTAUk8lhX)W!>X8f6g7{5qFPEQg?I#e0=%yUo07( zDPu}neVH$TN$}T9=|(x#tNGIwvgOFXQutR?GoN($^$%wc3A;Jfp{bS^!xbtJ0qj1vjSu02UVEBt#qaLV~AqZ{O$2zg$}< zv^)|ECiZotjD8t4BbF)e=jVkPOq0!>lVreo#9%&aQxsMau zB=_ITuG)Oz*6T`dOcl)J5;R^knhgEvU%2;06xx_rfZ5p9qh?Z7y5HVd{JH~|@nJFwvq_kkI>_1;lte&v2)?HW4W6! zZXOnGOuU10r(vl_rD$q7_2|KpCeq@L7bG(O00hV0SNB!?@MUNuHQb$*mG0-u5eS)X zwO)>`f8I*s?3)nx6_YMogcRXs+|)kUEA0?w8Zg@Nt#c~}FM7)K)K00Z{;XD7nT&SD z6kviDrj;Ap=`5#h@gRj%h2u=Pmsc=@)u7>r<-g3+2mCiJBW0uAr42MtVMzCe!;KYcWustUtdCABX|=qoy>Kmyg-FvOZKpsqe-G0ZSyrm4MN?HW(vNrU{{R*X zZmD1d@R70K=5c6dQC^4ht~hr$exv2n5+OVzW%8jFxYM2*b?-HN;ippe4h8k-nEN0&kyl|Li0+u@v!i>PuKNVMQJPES^Rjb3&HIb?U{w7hx z@6Q#>7mQTK8Xzbs_O6%Q!5`PIA%a;SRLWxRNxag8v)z9R_~wxQSe0Lf)K#hCVW!rW zGx%Fm$MwW{f(hcFii3N)aPHi^w!-Qs4QffRSZb;z?y})%la{YYinLwT$E8BheyUn@c!F)>H-jp(JEPfX|gF-=}7_%v!iYCi2 z5pla5ywQ*%X)P%#iGT7u+q8dsa!m6(MI0=VMY8`4QoG`r)%HBrXTdZP zca8C_3dJT`X!?5Z%N^-i!ZQOZY_|%Hk-f`}&YZq{uxRF2dKXy@bm`~$;h5=)4Z}uA zx9-|M`>Te{WnCdck}T1HyAplsl{>f34GhxN;2qn8Y@tr;rOxGAdUM83e$Qr;FdxG| z!MC5m5LXQ@Y=mhYHJTuu#oM=Bw`SWi5ecwH7Wy#{V}B;p?Bc{ZDy98KLT&RJVPrZ#-0Ytw2R13etY6_)9YlVWR0V2 zxs0T)gS(X(z8ZP;!IUJqbzHEAFtbxpzjpE3O+GKoU@TqNy^tzw8mrIK^~PH=A=O2a zuP+0`6AoJH`+51(d`ynh9I$|UC4eQSQCS;@$0_)EbFLdM#L9^nktI`O`#&M)M~kQN zVoauY?7h^bX!63%@&5pSUGS;x07!k>pasf()9Mp0}Bt(Trij1fYX|TnpcDmpB$F##0 z^5&R_%n`h85T&w7?{vq=bM(QBF$27MmfQ*%R32Bw82qX0gp}$md5dbxsIO}HICtr> z-xtFgW)|CY>{ywF)b;*H14yhgOF=?wCjn)V?AX;##xmP|{qXGJ`$EQ9C0vfV;nXrn z%AWgEMEjut=|C30PJSayLh+(DU5R8wX%!4xP}30+xQ#6c!%;;kM&bUrT%6e+*LiG; zQyx>Zv$@jCzZzx|Ej|3P3{!SgSu~ZHJacC~t21Yr8D8x*Inv|Ht_)f}&&XQi+|s-h zSv2(qB#IoCZgh$J?9N>gibEs)oMKH`ZQi;^eYy11&db`FXe-`B7Hiovvp{!^Gc#$u zh(%3{vYbWR9m?_w$AvhYCE9mT4R*DphJ9oAjmB z8*j^=1Tkjp7uW|QwkhQH4SH$&Y70DMHWh&){V)S9|@_AIN(3z=)1%tj+RIcKent1rhS zfSA9Y3dDh+h_c#QZ)$GrWqEA6O6tn@eGVC>X6=01sHN>7`DMvqUO&{WOO z+C>F1{x=_BNs$?gWREAGmN&>pnfrXsOS9wu0JVxq){*MlwMYOQAfUBq5-_L~BNJdn z;I(<}OjHU6@>5o0leEz@F1*U3_NR(pE&EbkMPZRBq`qrLq_1#+g zS@|fS;3$oNN>hEDG1M*S1{%iZDh>NkbPMp?id{f@gHprd`CEe^sTcD7E9v^+A@PQ5 zj~84UC>rVxlu?O8xUd1Sjfkt8ZNmeaT(l0>t7c@4r%}66AC{b2loa<_de-f+?9xq? z&7^I7X_OLW(3p@SvsPURC@G~aX-&mzOiI(_(Ic%RDKfsIiowv)p7sSkL93y%XXb8lS+-@A$UJVU*4&s=#Tr`aJmaE5U{DP}_ z`d~!M`#4ILcCZ?*%TM^mVohc(F$)oYhKG$n+KVSe_#X@l0Na|a#Z3vJ+Xqr=swIFO z?5ohqH~#?LfMCm+mJ}rzEv^EA#d{=5E~g*-;&VQbyq8Ki+n^!7`aM&Yo+FDdbeWLL z@r4nxqgLneHzCgmw!LaRU29QKSyDy$+=9&uu%Y5=p=O(*{{{S`pC68pcCL z2JLT3ujPk^Su2-nMDOhy(92r7IwJ>=6SPJ>w(_R%h#FF!7Bg_$`<3yIw)x`eR5;8w z;`Lyo$R^TR=f9Q%-5M$lLtYkIeQ?A86XA_^`QZYYk|*9$SDKF$X}xdUS@p!CO-Re! zQ7+MTj zgJP2Y5&2_9iAErksvnI5+rw_dp8I)YRTeooLq#}}i@W?N`hEWZq@S-vMb(ayhFBz# zWokExuU}8^YziIBOB|?&V9Q%=Z@IbYhSRhx{iZ16U=)>By*~clm_@Wt zoA4}Z-V|-Frw!cy08V(ztHVSlm6J6B*(|&$WXrdC9CbYRrWN$W#S1GOyZbR~Bi3r9 z$GaWfE1}<4;leS55=Nl3aYi<}&$HC!gEUYVvW^iR?91tjUrl)b0M#D!;o`<~+j4r5 zDo8DRJJ@3yn=(tqs~@|sQ;E|_GGj1u?G;-?*`Zk_-!6+tBJQRpE~ks1N|_6tjeZtI zsE(WT1AnFo0l77-r_*|jNE22xz7Z+Q*>{3PvHV+g^~CUGvho@7@EIdUk=Y_$+#*-q z#+5#JOw1QYA_N9SvGowYg04T8I^bqukz;k)$CGs*FHBq4r}=O9@AdMhPI#nen_71N z0GtT(GbFLJbd?lv{{WVp&AD{_)obQP*v)Xp9Iy&th2g#}D{tDno_%q7%)+Ur+C|S3 zyHeWzUbxLLm9){S*3_#a*N*Tx{V^tqDDtH>;nU%5J@E>@tWpIFD?D0yrF?d$^2LR& zbo*fXcdNJ0{rP&}D-sRYE6KfFek~u2SEeszGsPQtM}W#aJ_jM`zg?^Ai89$KgEXcnvpM|KUelMFB-BAHk0LbiW@6eY zX5I4x)68yT)exSiY%mta1z9-mrI zd2@2dA`HWeyOFdc5CGOdCZ@>J(=}CmplnG^vT6hE{1bDVah}+!xT9jx3rqqm&{`=n$0wQshnsp zvoH~1%g%b`@@yEok^yJIzt!7dK$w(H>BBuO*jQMiFHk%Ir0P(joiU8XR(wlGTh0_}- z>B+oR1J9Ng|4f<%HLDx%E ztxbvezYZfnp|2IXPD~l9Nv&4wW=#yBOtzVp)kM-pDfo@&O))HJ;Ih!PNJO$JuLX4Z zoBsfwB`l^mTHs`y)8sCMI9uOzzLcTBzCwjBl*2TSA(9muO3n*4z6l&@*RLzF5Qgw1 z3?c2)o{($lw!r);N~D;U1+|{s!(a$Z@xQ>XyopIxY#jU z(c^EudG9~d*96StFvWq)G>2F<5e?y&y-P^blMUV&;8DXIHEQj$iS`?RTnQaYWn)1M3EhlE?Bcd#FcfcW$Lxdoka2Nw%qVSh`WF?{pvl5#%jP* z#40!IOe8VJCs>$kO9-S$SvNMrX==+YVhz;HeLKl@&5pPu`0$G#sg@xo)rac`ttO`=FJvd#a`n5(%9T4 zjCFN6*OfhS8fI@QpgBcC`j;LAEB^o`}sH+e_lhJ8n^cq(K60Oe1nJ*pXP z$y*o<>Vim|$9pE#;HmEZxP2FVw9&A6Cr=#kir>WbdrsJSGbUCpUNsR86khgU8_7hc zFU9FfVm#(<20@sKr4Y~E7~zS)XZM1zyLWK%pr_X>7Ex&nNnw>y8ckrb$Y!MFr4OXA zMGS(xs73_2DGKUX)k$4iRd~c#I#t(C7+(;0~}=%H2E zD?A%8DPyk&$eXmKXm%X>;Ix{NEHO0Fvm`d!v2x>=oNdaRNxv#$Owp!fO*6^|BKulZ zx$cDj0Cm9#-U_s_(}MQlr9QR8z^6h;*r{8%l=!^Ax?)8#BZVUF?#8;F1h((j51tb< zNL2Wh>{M>5=uHpH8d4x=?xn{~j{g9>zunXO<%68a&Io1i<6TRe_~}Tb>(hJ}X*Ah< zNm_IN0LPXkT^X|x-?~E^%3}lVE~(L_eeF1XFtLDZEJ#YOoB2F$2|RK2J1UE08n4@`-?G$NB>2XgrPuO0{T`kqav7zO_TJ+U@pJ2s?FizL*U z;yiR5Zr9*+0W&%}F2s08JE?>PFsuaQ&N=?BRY^XH3y} zR2-A144>j1t2moCRG7DO?IEaZURX%yNP9|h%O+zrN6R>Ph&0P(^(Z4xJ*#&;uw%^S zV1 z(u|DZ$39qLaS_-I#q^CiJ6`^^^2Ab@a~+^%BTp%ntWnxJ5kb>@TG{D;>HLry z!?U|E8T&+@TAihwNn(a4lX0a6#)hYsGU)kCuWHF0OP7;7+SzQLYdbDh6w}g{Pi8|h z!iT99^sWwLvtY^PmaMWqLm>xe%-LsQ35}C3k%rLe*OvG|JWS@lc{JC=-e`W9F;Yd@ zL$YthaIcmabSCC{@-(-f^1zIjr47uh-4)w&C!1Hua>ApqU^XZ>-8h=l@%m#z2*YM1 z@b6@6n7)hT2!I z77JL&D6K`)ji^jlv)^4d#BsQ=NH#E`(?U6FSH;ia#9kMdFnDe?-Zj>&f5G}baZ$pzQx0B* zc=*Eb*ayW{{{YSuLM8=Ygz0V2aN&uF+EkrcTr!(m_kZ(=X3Rwh%H*6h&jNuXzc_Nu z9W`WUlg0;w`Q^jF@!sV`EnjCvlXKj7SX6g%zq<9VBZQ3z;>)!6S-a4-nJ%yKprH@* z+pEgIvLtm^WM^pi@RJ>zyQh!jFrqo^l3R*hvP;zs((r>P*Oy#dHem=;r(nHdsb29< zcj1Sp^se37#{f1ElTzsfX0q56X<6y$FqD#xbqqOE!Wi4)v3u9E`u=K?$c-tjr9e?9 zFN13_9=r(>>lAHaBq(GwwFN!t^YYuz5wax6@-KOsig{IpMz0=O{{RguU0*(Y@Y6>s z<#{Zt#OiFXe*CS>HQ%Q^9JX3yfGE65Y&1nRYa*%C?*cjD(C1s&$&uraPqG@w)=dbrL=+ zQU24O09ke}m%_@|uRb(SKdvI5GQk-VXNi1lu$C#Rk-bMR=ZR)f89@V>peb1m5;$CN z_20c7R6Q{!Vn)6cHpHMlV7co=+taQ+nkm*G+{{Y2rT4P#IWXnQh%bnlZy`Bj5a~JAEERkLIW=ia9 z&|@z7a#>_qGZ4sMc_5%f_;-?#9jl2dQb^~TIVN5QMFw!)wH<7^Iq&s-uZu9*+{V;PdZoD!|mfXM!E!I?5uUrDBz2Yfu+Lr$S zm${L?NBQ8)AQ$QLUwdHiKc_a^^}%r%kt7zf_*?Sd7eb6Ut5b%O0Y&~A{EOJ$%b5$}T(Fy+kxXY?Kszq^c zJJyyj^WO$cxj@X6Z@O82{{W`^u>;PcDFOGDsUO0W%X9asSGTq=4*&f*GQ-&jaz$u0j9(h=61$nHAxFO)XF-o@@6jNoHgT% z=kXj8BUH@DHD)!o=|>BmUYJ+U_I_?$g6*r7fahT<)U(m+V;XxA1EQRUA zar@VP=?3(!_+A!QJi|5DU&U>DezZ(m0D_9#FXM_wArn`FM*_6eVjm&AL%!=1DeEQP{MIp?D-Cfe4X{!Dfp!Ma4?qrom4UxKEZ^2_v zA}5_|j`>P8#57C9vEA1Gwfgeu)XJ5z%bLyFtHrbYcGJ(U7&&%UJJl|s{Ku65z?Xx= zY?iVHv^PqB4lJd4a-1ED@2U6>+EPW%gA|U4x8Fto0Pc4C{rONivW@PH9P zC@B0?`TqcYa8msjr9-nvB(8^(1k_GH%L-=95_JtpwlHPe*ZuHbuN8M`I1E)@6p1fQ zwGX|oriE%S%J8IUK#&sEGATYbz>Ya}i8UI`wG`ThoI*i>QcFsZ)-uqrW!$GLt*`f7 zHev}=LoqgaNvfjA5-%c!26aInjq%*mCGi|i>Tl4>`ENuo6;lA@c^ zpIlhT1hz*aOk5?i$L?q%_)?szFzQ}7bJ3X}H@`vk-v0oc zO_g}kSt2&aG1N*$;&8w@{Oj#vKxOnbr80$4>D3fopHRTl5P>rPly z8F>W9je$pdJj|$+3H|fJ>X@!U9YYVi)-1H5$tvO#^P4YMM#Qa~6eum@>4!(DasAq)rINqecE@kuUu;ZNC0kJ?_v}Fc)&M4nw=Cd;b7RV^%bcAoB}f>M@lUEGsmY?HqSE zbT*M1N}%=qF$%`=W!cD9RB)^%X1Jqf4LNlc>xj(UL9y0L$QC&l-){y`|a$ znvWVS`Pb0qJ#le=3gXXk1nD)RWlvVXC$b7l^ruRk55uS-NoMj z0Do%SQwUN4o61FE<|Gnrm}hfyK8=>e{ON&}n=h5p%&IIt%#&%sHd9+q+L84o3z-0S z^jIO}Yg&^Gq%1@=uF8*imNOlxHE9~{UB>){d4%?Ml0%cq$uN{~Gk28Hig%#f<@Cq4 z$V-s=dS`QaOKn55j48i!ejd;I!S>wxWR z0b46+ZO@6Uq=<|1H1)&E<{M!Gd9QUMI@asOd>dj@l$tz_NlFOjqqOq@btH=<8Z9UC znqNKnV_I0`%}z*PY0k*mnM+)xeUXY2vEB@-{Dm>?6Cp0Q#|fFV%J*$y28|SPe7~kO z3db!sX7R?bb=zy-@YHy}H zsqy#-^sQ@)c$T~uTf~fdR=fU~lH9zptR^*TO zv%~EucO_(jYxSOAd--BHgxM^njg1(dM#$yo3#GKrtYzE(0NTV*Wcw9+5k;x(+2)%| z@gw~|z3|`SU8$GMO2<(IaQiZ#--nJ_JGA-r>4p!R7I6+}-n}sCmJIQ3*Ql(UB^Be2 zSoIzG`Cz3T^9Pbew->;&PcL;1H|l>(KE16YtVFWBA_gcQ;1U@cL0{TskJgx_S)#Vu zISeapq;$mEtRE^?i_=AItKR-U_OH(ZT@*0gX3}0Xwrxn|Q_Flq9C?8ftL_@IlC(4) zJD0Eg;z+eYmFc3=qkr7x%1cJk97x1iId@p0iT1cRa>Q(F~2fI!&mrWt#O}K{sobc~SPQUwco( zi5!?=Gpi!3jiAjSA#O8EBO+PvWsH7%;y7f?Ma46vR!vsdHId_r)!<%xV@kQ5aBnXZ zT8W$QF04)Qy*tlRHsyY^5Eg&1K^{w#p%C0n4)6 zClFNq?|l!ZrUp+v*#RJl-z_F$Nkr@jVK03J0f{Bm(T%|Pcdejd^AcsVapq#mjNI>* zTEJdSk{DB&(~Im!xvyGp5P6qyA1hU|SBuAKO(x{hQTOt|t5TA@a;>&n!l>^PRQGf{ z3Vm@ds;g$APic_EWrYJ8*+h;*Ait@Hb?SLyS9+Kg7PC#OaOd%Q<1ajuMWm_8)sJ=@ zERAOO#&)jWSZ9noET>ffavMzj-~RyPE)k$`@oCH@%jSl*oaLfu(kJ2FqS~J4ea<73 zFEo+}&{87=WRzy&?<22vBK+|h%np=It0*qF$8Wn^;yS!{d%Dy3sfgJ?S1Jp{h(*PG z`OP0cw5N55Acjyv+b9TXp_OjD{rLCv!OLpJmoE{Dh*7f{e8hZ1JCwfJwMXp2O|&RR z`{H!ZN>eqGclLLa{>QZYE!eS}D?9gVJq0v#5NpHCP%~Cu*mTQAu|S!CC1;N-+Ax(S zqS2`wl5PC=$7sxu!qFVYqKO?OQJ8wiBITw|_CIE7Y<$PiE?Q|r$ysGmw*#rr(qF=N z+Xc0>934EvDOo`=G1Dn!^53^g*Acqqz;%+993wI#=QN5ohfI<*w;Wp>T*#4$7%Zg* z?SH*<CjNOs+0+S*^7B$^7uLNn%MTUJX0i;qkGjAzv(JAVwORlmrvOq{^&R$s52&P=Z5t@ov$UX2KX+h5ub~kKEnayXrIz4>1YfmOze~IK}a|%Z6 z^G9cEWM!;5!|cN?Kf^;%AsL+HZ7j7z9D+6~@S^Wx8tJ8emtxGWUs!3*%aWDeFKSkM z*sUQkM<}STI(>1Mhc}TqRW~ZRlP(E?siob)E@nvc5%Fq?O-K4k#BxMo&O3l!JJL1N zJbMapQp$aC7ItHpJ)7)OLoQ|*5#q^TNm6%Kn^fiF+6iU(@Qg>6X_fNPHgTUZl+IQx z%FD->ia%#y@_R6yMb+4r zzB@q|lpaeUZoBmL$8xkj4NiV0`<-Lo*Y(C;Cq*NLXua6?d?SbJ=Ypq~B7@$379XzP zt|ENniaQF6gmp3^Y(7=4H63>i%ZA(6nWFsq;#w%~WE=^_ z8MW`d`CNK*!pt1jLqNjCHREu=Um=(>}-%gYpo1d0IHTq^QT&b|I(d0MhfB$X8;V2GaQy2#3Rb^aUa zUs`$MX(u))1(u_|Mpm?j-|LM`vCGJ(hGTT9uWc^qmFMeEt}7hYktL@6*2VMR*A2=kmm<=cgnOaN~{k(*yVL{{XfWN0FLUmuRM&JnZQDz65lW zQG!?X9I>JPADc+xAjbJAGg^P^k5XAb^#&z)^Ifc2yi>M&F|N0K5hZ;*@TV`BIp|`p zqz-91L$?}Od&+rGSJM&BA=AtY^j}K(H%}Ogj-cQyH`u9ZknqTD0bLn)r-x%-rV*l_ z*`7nfx1^Fw6DNp{o0t%|e8j;!XTf2~B$WWA-W11RN^)dNqwens#)L ztq0532-CUDN=4E=WC~pK2^<~NLO-+Dx`5HSV{ z#M(O9Ze@6IC5l~LCh$oViXZ(n@qX{-eD;-O$~b~Xyv%qAWl3arRiP>2{W+XwGg%!c zMVbYOvovu=lGd{38Eal+dT(jvfU^M>Z#IcDWud-RRW+=#FS(EZ0C4>a;4kC)2=enFx5ya9FoaI zkcfgsNm0=1aX9Zj)OlgDxkz42w6k)V>dPcsR9t^~Nn)p$%NZR0QfZ@}7BJ>jq||v5 zGsTyCN<|#@R#>;fDiIcEE(~%+SB4o{FBiJnW{+?DU_`+8%vy604DNR{bl}xPr!NrVd4o{-ThAGsw2bMLn8-6(ww0eXts#zH_A?xB<`+s4gixbRBA6By&BmF0q<06U=Adfq zWwamuSThWpJF8!r%NIq4Gu5)r(zu`LPD7RkYCODyN<=z>*KJ1{O;S7&#(%#c?AMkP zq0`f0I)~#87#dNYTc6h!$vH-e*(ktpspOKRV@}AS_cCsL#@L%P+1dS6jr1EUqcyQS z3Up-zcWWm-T@U+>zUaYPBcdg|R>xAD>G}HOy)j1(rl_ip?f#+V{5^0|OA4``T)Mtq zvX$^!1v|+keYJtLNl-fGYLuZQ`+_%44pm+aVH=`ua1 znw0iFM7uKkK2uzoSBhWTBDRK{*Aw;xkxv2)<&ixp7=~x1%6=ip!zeUiUA(e^VNE7b zGZNpY2eU%{Ct8j)HsCGc-j*$7ZOhGcu)WXvfQH zj4om+T%=kfHNy3I*&a#a)*_mBd?XJSrXrN*Mp5&bc?@!D?O!uNjIGY%T(E~MVuR?Euh$TarRO1+=RCEMvyywAq}UkwSDqN!3bzt9w=(|#EM&k_L8~K?x~;zn zPN(z2N7g}Dm+%i?t_*~z1k?&zx}O%?)|-BKcVuA7Y@1A4tmrSQHva%4vFD43G0^MA z!4^1{MbZ7Gm+a*3yUn+};#nm$(OSsw!VE3(-M`)c0Gww1h^!fS<(*>6ym}JF3m)o3 z%hoU1`_AvvZkV+g#B}US#-mgBg45mpzg%hC!fmae2Rd-{th@8XnVha+OCh?kvp7|5 zcfR{=XNhoiJX`aS1ta{hwbZT|qiSj}cLGBj-z zlPYAR%Z*61WGHKyJ=SD;ZEa~@Se8IU#ncF)%=bz=yW+M^@||nL<%K@iCZuuN&myJw zr!`rr-bcUpTq%*gsUt%r*^-YVBy_jkjagHO>^XVjQQ3_m$S!RLkcW~Uu&h%GNf(!w zmNOYV)!24I8QzD;27kEcb74l$^k1`ww79WsM)y(?I4N1#B~^wJviiqF;f~8 zn@(>XB-{T0r>$$Z>$F;=7Tsf8oV#ful1Tf#r1R(37eF0gl*;CL+gQfW#co|(cX4_i ze@q#ml-kqTq!?f$Gum&#ux5&JV1DM*A8FN=@CXRR>fDEWD^mT5stC3l`V>~SJNvP3MN zzt^U3HJzRFKGUK#nBAgblY>isv_4ez#%2VTWrHdPVP%#i;Cab-U@Bv*m`gcXA@KdnM(z# zn$dfcsFd2jrU8;N>6M1vbdnv`xe1aB7wbpR&3IFP(?qI7~sO>Q6GB}X3qdtl}AvI@Op zfyV0tZDFrkZ@$#PkJ>cY1(obC47rqz_1disZ?p5Uy9w37i89Y34gxmi z{{Vx4nR(OMB^JuB$0xMK!0Yh!#7)^O(lfXcqiq>(uc=d~mp^MR+fZUGj(!0H=1d5= zysmBMfg|_TR}oS~l2O0x-F-K7lSV7(QQ6ByV^-=v2Oo!_r`HQ=MCwkVShrgAvQM@C z`E`pYnppJr(pHTTV3_zbp4LvI_1yV$9dgn_WJn{+Q65l~nX3$T#Xhsg_~byx)6pVE z&BNJe_RQ18p3}`{BxOrheB4C~N${I_d2fu)TeD!wreh~Mn4oy4c$w>~Q1NN!8a`1^ z4qTnMdJGQElQ)%;IZX3M+05EGl?~oNtE}G9nuw46yu4eV*`#rdw%XGTYnk~{L#>BOc^_LA)va*15N^cuA3ZUk?tvrBAO zNbM?VuYn;=ZnZmC>wslpSJ)mWO=&q7=g!@}xJe{}IUwD8vd_e6b<$nNIaGfxxsVjY zs-UcK@e>JgRnr`<_0zG1AHn03hS{W>OVEjCIhb1sa%ou13GsLHi#Jk!ES)XUh;Quk+h38}EMHO`Y^cn|Hd;)? z)4;Mx?#i}qEVohla>HfDTP(|{%L{6o+@Ffy!M59Yx#R!D03{Fs0RRF600RL500IL6 z000015g{=EK~Z6GfsvuH!O`LH@&DQY2mt{A0Y4#?jRTVgbLIopfyy4q;ho;yL(`a) zZ|XA7b@cN%Pe$Byv&XaQa8u94raw;9F1x(!U?4aO*G&N1$Y}sW@HHKeqW8-tj3yWe zpT2nBDqxvZqKe3Z8Sj(lBZ%oecVFf&Kg@IxIl|Y2JgzkUXk2?YJj6YRgf^!Q__%kx zi(#`r-amzgziq=ASsZ2TP|pmshQXN7Xe?@Q=DP^xx&tF8!H#{J512G_{{T)dA8V{? zV3pcr;4;0Nh{8%n>Yi?83jR=QuW9*Z$XvAJBWb&DID0W>=8vc0;q4}&B!1BG2Zh=m zj&h93pX-BF!f^F|9d9jG6L6awyOUbEXN4oMxj|}}CUuB+%ors;0xp4my5-8Of9UJy z>z$r&e3U;3yaGqf7I%RPVE9^*3FcOi?uYhu!&dVXwL~raoLx*SNvBE--|5j%^7a-8 zDk+ee$>Cg(j#@lKkusTaoo&AC9jQyRIVKHNR9JeoK!s`MQfw|b^#o1trPl(0S6l^+ zhjWLp8W?q#jJ@%z#(_i2xuhRbY^^)O9UlO?I|yfov`ESvyvWpD{Bow-4G`Q`WDGZ) z@U;ozTr)zfayt`_toIx<@MgGL%EO)2#0onv*q&#EHKMEPOI=6b0Yu1VyI_Ix+NH>O z%z`9P>qF(P@grJIsOm?&OmLV^Vr`3B$ms5>yn z6SE9areUnmjPn)eNhWX7wq5MtSQ4duy)!Eth;2sgvvP5^g+8~G8GA7j~bcT zADlm)bI!REOmj%x5g0m`fDJYP9O3p1jdC1VA@Ye07&Rqs3~^c(Ll2*gw%HX0wS5h# zm=Vb&S676c(nC2y*!eT!p&G#1ZnK9REoN!Z94AQ7UXBdV2+DvBTysdg9l?vXjS5C> zOUH<@Tz#o(YexV9n@KUZuV2^7*Qn2I3Xr=^YG8KPcGziEB<{m1CSu^rqlC?(7ccP4 z^2~RpO0{@8Sq7ITNje86G9KC4bbaMlAq)wuv{;C}%Y4N>jGhtgrg*9hF=k}W2o4MhFQQwjf?rlM1t(_jvvh`Ohf>e zqm(CAt&fR_20~|ynrBEb%zDGF&LLYe12Jk`Tx_>zK7*{Pi#B>EeA*I!{mJphH^b03 z5k_TW?1LA-S_skbb_x@o*8o7;^;*JQ$SFHy4S>sz7EGR|L_Hxa(@qV3rmHZwei; zt;|Kk?jtgu|x`h)B;{4Dx~1!Kr`g9$nTRB{=%s>kV+V8qG25 zyl`yTXPP^<{{SB){CIaj64P<%-yi6|Jy4JKaNr(<-`5Q1yoGce8EN+BBYV&d^(&uc z-Qlsn_FFERO#SuD)$$>MwKRRaPF_f}lI@P)YdmuR{{RwCWje&@-xeISTus4=6gju5 zw(ih@tePgUg1lp$R3H(obzEVSg3y}GoX3Y3$!|@^2H_(nx^o}COy@k;hJR#!9Ny+e zZK^Ul4%rSklk;(W%xwPvPGW&Kw6GGUWDO(Wh z7o+Z;aCypNw<2NlBt7DyK}~@ORkQFDvFBw-40%2YN3K0wq%*XT?jGky1yyYtLm3;N zTk6|Xz3Y1T*y!r;KJCWF@k*o*rwn@nR2R|h{a!+r(-V@5lLj~QFr@Me3z<(6=q9;> z`_wcskCOX1MkGsCy$ezDi#R^{Od|t})G_nE34x|=Xk$~Omx{s<0=Xt6Lt(7u;nI-_ zWp>ACa9FD#>_ss0@Kb4uA{`P*D&~$`4xk!DnG4jyvhd<;weI$Cy$n0#H5)JOy`ZPn zFl{4GA6_ba-5hFj!ysOqY2LBPz^x)-!o{W;dlcp*%yLPZR+e%yHJB|W1To45adGPN zDT7R~i**3Z)*NAWGaQF$8sflH^=Uy7v$}%e;`>3+(0E!2II&@=>(Q*g{Tv_d>1z$0 zvA}bLM2o(}j?%<*k15|aa-XCJSA*9aZmdZ`)XLf}@cpo1orYi=xqOOu=0%(1fE;cu zaUc>OeF>=f3cHnyerLYSGs{A^nUUyncCbDjUp{4TBlb4T@-$Q{w{tjLH5OxB=22tF z@7t&AnKX`RgGo6J@wXtvt<|ReMws^S>_x6gV?rqzfyv{d*nmb~1)^AZo&_w^cq$6R z1d%z%lL!_60M(xrAUbYcqq%MIk50#xL3?h7X$u*n>8p5*=SMJLnj{#&?&5J)afQxh z@DNy80_4eklaj$;2FqF72ejWxyZBGH#gbl}a5s>ypz`?%x877`RNZG|UtSYv_gT#X6Q zk@VC#@Q@%yTNH6AK60>GAi*=M=4bmJdi+ z=NxAlCA~o!6<9Fi;eRx%ceu}xIAXBD_3&%@>2;isP{JbhWxEzB$pUuKCEcro|O z`OZA_G{XiFy`7r8!GtXM4i;5pM;PJ*fsMgB#V@?aN&Li{DnFvRq%U4xh*Vch@O^}h z4@b^f^(G-z5G6z$#!2=OMEy_SE(8K~ z7KU8o-Lqv;67UIpx~mG^&|6|daR^koCQPJ2K9u1MftmR_V{0xkmOJWqu1UbdU#8Mw z{{Z9^adC0;;Re3QX;Yb|GWMozb#pysm=gr)HPOB@cm?6ipt&f?CXR~hd(7d8M?M{Np;6SRd|L!?~CA-K?d2>4%=rD_*;G95)&>u?+lBo zZe({oV2gr$S?2cpnP!YzBRCPLgB_Mci?O(H(9=IaNUVtK zwVgw9b|!E&oFc>lFUOh&$mpW0CW*I1u4Y2EbE{>ic?W=zL|q8h*4)vYjyN~lWs^-yf$F+dEth|+p) z2vp2z-tCtf%+2m#om^pxjOYdAKw0gA!m@;86A%MQXO7yWmji+d1!BcRxI&e%b#6@mh>Ql-3L*|x%+Jfbs`1n0;`4iS>zVbXSRc54u} z!M00w^y2NPDP;Nvd8m&aWB0>P-`$$!{Mn{|AAvw^Hab{he z#>qjD%;^U0t5{uk8B0?gm#`3lRwfN{j-UgX7;AA(r!&4?<5@_%UGY8bQR(ZB=j=ri z$h+18UR%N&Iw}01<%nv%d#}E-3aVGv`_9bvxs--U@iHNx7 z=qzBmPSn?wQV_g`k*LGlH<%{e5bzb|(22quAfs6U;nO}`j%g-n@%a`TJl(DeLqNTC zy26i!clbKn#(f|`Ek2BaMr!e$AVzCt4yW9msuwd&3F;K<5NYP?1!V(zm<&%2T0D^> z)xTJ{+tzD;L0pM^^?-+VnQ;5HMA*uOFjN?2g=0S8NbT{h59WG8Y5xG&0WwC+bsyHc z;KQBqOb-xqKZBcq1OpQ7W(m`io{5l+mEN1+h`RwzeQVdb!ED_=28K)- z(x7-MESR9|D1k&&hdTCI>TuV+gHHu|2FznIOQ02i;UCP7@9u= zoyrliiSbAE7^qpXZY2Gqq8#zfW5;*B^QsY6Ifggt%@7qp#ekfV`l`dywgVFC@GWR5 z+QQuZ3t2f@a1{XoR8&{3)F`!XpDQ1wnsBp1*`4C4>O0RW@My8hX8@@{R=+TCik!~T zN^YEz$lZs00f6?&v<6aKJ@BjJ+BG2UPdx6CB*5Q0aI=PKD&6YMJ9<1;tCDc(P59hxt13oJJX9WZj%8 z<8~xdJ({4m+;Uf-S#}1W1K~fnA7Wz=zyAPBZlKI|7dONSwLZc(mS=5kQBzvqCRy~H8#<3VTvpqI(~}7O>x@JZ`v$AJkDK8MiaQp(JzO4hIsAePCFv^GZ<=>o zuSl%XnR}iC!D|k1nAhi|oXF6y3i#|S6L7=G!#3j`cf<4ZtZ;O7!nLXC5n+#VCIG@~ z_T`=SxZ#TEBAm{I5dA#k@iUxnD<^nw4lCNjA!BWsE_eK3y9@Z=-rDm!=5K&t4_;Gj zWA~<`HDc4WEy(!cK{{-pIJb%BEnEp}c)cq*Zor%Z_hDe*Kp~5LZ1YU0rZP z=qN$a>3$`aR5)Tz`1xAklLyQP$>JHj^f#5+VC@G44hlcAW3P4&Lr@Au-$$5QV~8N0 zBu|abu4#-_-TZmR*+4D^4l(_a-Aw}boeiZtXNX;+7cw&OZ^Q-rDbpyK8^!rZ<&5t= zPlj?xkJ5cfI?AU=6d}OC8l)t?`>`fT#rD#swudw+x*H zIX0+%8J}=)zUXldHWtDT1>LK4ksvfYay&G{K?#K@BClRCy~OI^JPgbb&wC+7huKX| zvrNE;1WKFi7h=R|x6Fn~8N}ri6-25dO3N{z^dMf1RcPQijxes3>M4UXaC2`*gHHn) zNblo=il(7>tq7ToW*o;h)_-ehCa`&TTZ8T};KY7}<&+{>TCJ{c;XCF$!+`coMPM3@Ln;1zm8) z+i1qI&;ei(#&_bg{3!gekGCMh#DYR&M*>xC;AsgsFEabk!d1r*vOEtKij%yiCk2by z1J;{3?^lMIY>5?ExceE8;3U=BYC-={-7 zSJ_PLTWbm}0L#j>p^Scx!R|<$vRVry{qYE-9f8X&&Q7hF-Qhyu-M4S<209d&Ey`TN z%7x5DY)a(CJ>d(?S}5dV@k)ixu-L{vv&9O%NTOkM6O^-E1u`VYr~QT+Uc?|C7!xGN z2n;}9nQW(P~?rvTE0F4ly4Lw zr`)VrqBHX_C03Exo3Ag8ynu2IJDvXk;Qio8HYQ@yj!)3h-xEQvC>MT~{o{-*_-h#o z{{UF|;Yt8FX}hBIIPlrQy5um+=UkA|sv-*@LGL+d6rzOEAoP7d_TmeXudLJLnC}_p zMmAubSLG`?UvC%08vGB3wf_JN$?GkF`X)c|&isoXe?Q+j0oe+*0w#BG;&ugkxpcw4 zsF!|oNI^ps*sfSVJRSg@GdceN>)Vq?D{VO;>zVnQZ`kPw+tg8%6^^7NbYCp z%yk>JrQFo=8gnfo48@^Y?}BN0G_DX|8u%HKYX>%M-~?63%jR@IpnO7-Xx8B%7-@zr zED2h0vVG(n2*td_eT7ko;p1<{Ov=yPHkTYC3jVyagQiytshGUd^K)E@PSm1u-Mk-- z5Oz901)@wF{{UrCcxGy`su@59X44-}GL1mK=6(D+Gr~Xl-d&q8BzQ;R$*{Cp)2PyL z=&~7b$|&CTT3rcUS$xzlV9BT?oVpUB>#~^`w_;H%EZT*I61F>qX5PM(otE{(FLnl? zy85ml(SxuLjD+E2Kw@yQEF%6vWp&0motLYKz)6*{2d%A+V!I^LBSYB?C{sQ%f2gO(shd_f&F# zIHhfL9=P6%;vPt=r_gf_CBVe#F9}tBwAV{_u${8n0x|UKUw(ZF)B^l3lj);>EO9z zoVr9ShA}+m;WcoXF?-PyltCweTJeHrlBJ|; zu`qYejNIYYX1^1_cPfTP-rj zUGTDNq>L1DUu-7;qS1>}hX%jrgd!@dK4?MKb-oL4kSn*gO zQ6YQseDo*0Q!_m|pM8FwatDY`O%G4%JSYi**f93t#eUAj5?QJPhYxYB9Jvr$o=9qB zv7VPY;!j5 z2b8{gB!NihqFxm^@j%2-VP-3@F`<&JJsKpaB)#$gbgRJlBc)*@AaL0UCnpMmm%avT z5Tk~`^Z+(I4yq7gOQkKcHsO!R4r}-c1h^`2$IXXQIAJ1Lw>UMJrvRL$kV!;ihijxQ zmw~{pX|%I2hc-ZO^{J}lx@D=rW=Iw&*5()^w@8U4c8k@pys2S7d_*n^gM9WHe?w<{S7)h^f?eG<$!w1)KyO`7CKoSG@iH` znP_Y>Hz;+2>x*SJbqEI7?P|`|f)vcoJ%!WNc#41&jP#AJCNB6-Itt9kmO@yvfC)wq}#6W<(tnvnnQg1h&CKsogJbx1=eT}fW;A~uUk*ez1mT{oI zaHFaqE**5Z@D9TWU=xH{^yK;xG?bBp1zNtiCX+arSj*c-IKA`#0AcANKVR#EGL6^& z0BvSw__JVz=G-+(rMTRN;PoqV5bkn*15d{yqAcYnM6bJ(Z}#O(H8{=reOF!^V&FQXTU!yzk(C6RSl9sQ0R_vqX;zo)B?@RNrV?0hKXYB*3jI;FVuFPNJeh z(f-5M$&d{Q?RKv_f8Q9|c0L&?==blPNOztC7rBff+sa5hm2}H-FqyxcM*wnrbQ_t^ z1~)KZ+vn~492+insXKrOU2PqWE!TiCG7iAup8O=oJwv$+o&>io+fWsg@qg8Y_oi?*fSjV%SZ* zlLs((0bm6y0WH{p?=HrVK(}UIhNGBxS=MpRI@fGk#jFq%xGa(wXC*j*gbg%8x4$#hA!EIz^ZK*e<&jymx3zz=#2>rU5RfD6l&n%^94#~xZp+C zKx8T|%kzXBF%qk~F&#w4N>Pe2&VCRiXYU_Q-nmS5yX$cS-;OOuslhMx7)v-SjbGMi z{{X?s#TlLVnug=zlX*HVDT6*HVFozUO{t=PqLVGNPY0pfE~>-2Y1@d~m!U1{lIdd` z=6T9WoZ}!LedH`%YYK|A2x4JPyaE?p1W*A8r;yowT?pe0QYtVh94ou)M6fz}rE`u0 zE9?)!o5HzFWEqR(>;%{9lmXM**LO`RkG@?Ek;K+s{@PV_x zJmhwue%4Z4gu&eJj{qInm=^9En(v4)d%X_T7+bcn&s?uz^2CX$o*DMxiw*`3=bxN8 z`&KR$PY>=+Fixq3ECW%bGZUANMVsO_Bw)bzjt~ww%)1bB;MCq!dQ34~(mF4#abWwU zMh{PpVtnDfl|TV|z5;_yIbCvv>F4BVdh3AwOF3&xG@VQmQThNh+S@m5QAM+seNnAl zH*}t5^Kd!kL2g2N!tfH8qo@aTtb?a9QrJf%%pjQUo);v)3j4YVa3c52GQu3zJB(YA zJa7YT#o@bhkZ|yyXfHN$V@7a2zS-gV0s;9wjt#@$Bitqqgy~1YBgMHk37H^GNX)1wh4sC@VWSnoj^s zm=@g$LB%C#(FQKB{W!TB-S~=OeeZ-Yawd!LOcP!8!+f!NL{c3OUffNrlcu;((T=`Y z5MdU9$O=icvulVJ(xcoP-_v!$OT~;-FH|Voh%zol)E96Od`yIQ+6;um6?XywLK!Yb z!P-o#mlOoMkQrbWaGPl66Wm7WGY|~jZOelTCfU2J9=pZ)w-FMH9w^_dfe@ebS_Zg!hZhT>6a>#0Dp>oW?zm$HmYkeTvP+cPf%NLQ zcvFZB!NJIe``?Shxnt9!*BNF!H1J^8%%C-(h4#$i#+nk8%{zjaH|4PF?2)Ipj}pfq zQ$NK4Vi;A&M}Q{BkGT6^6v8cGiBdu|dO2=&%S^EmXR_pfmxq7&%}w67FW9T%ATHJ+ z7$#+Tg(*YVV?Fu?ch9BwzyQjD_RGbXM3m6Uf$`br!cZSkTFfPOTMaoor#p4?$Ja5< zi~a+vK-Xa!FB3m>2Lv%6GCIbJcPt!V$+y{gGB;jL({r=-ywn4SYHPQs>Rc}?7K0hA zKswnN#_>Kk*li;J0JG9Yh%{LGRRja%C*f)A&Ixng9bOrrk}>-ZO@4jhUbh?|SD7ej zo$(ehx!Kbw{BUZNDa`dFC&oCG<#9|i!ZBliIeSitl{gJEFmrb0MWPQkKRe}VfXH-DJXmcnH*dK3K!I< z8&&rZ)Cray6%eLzL}Cwi>P^F03Ubldo$_(LSY%yeNQ*w106NK!7lAyJod8e~(elRu zq=1KIhaZ1=EVc>_1ivAvzB}L0+P#%HYlc7-7n7fJn*P;&8+5;T!^RnkuZg&HK~^ZP!bgj-FwZMF$s?tb6U8%8jtmzvD+9?0lA| zWo`Rq)uB2(r#yg8L<<2`j+<5$^ z-+sQBKPL;}2p-kMgT;RDVOx>>!XGaq_Z_M z6>y+E9u0zn9^@yZs*fDPkca>r21;u5LVR%KXHp>1I-Iu9>30o42w{!KENJgJkI#7P z{xZ_>8h^<%`OecOQ8Q7T7{|%Hj$R1KAVP@bW$Da5FeVPxGgZ$)o$+QMaT2uZxHd@N z5Kl!P@vs0-2fR8fZH8T_(e%4%{{VoGDqWxDpA)D>8yNsuOYfmj6`QTxL=`Fsw(c-$ zB|VvohO2l20z%M=BX?(6U-u>|z=--TVm2l64RuF$Gws% zqB!^=I5dt~?kCC23rNdi3s$~0`{BIc08=P1nEUwV%Br!=kSpA?t_E~wzyRHT{Lfrg zPWxbXMm>*gxm~L|5N4#eI0Y{Qe`=Ng0AI%TI4NtZ$Qpzb7iaoqoI>VcS}uy;rzS-S z8ZKvNOyY`6W2Fs)P5%I=9ZB?bi{pAsrv^RK8Mu1Ht?T2IDZ#CQ8p2Rdr;ovDA!YYf z^*!MjMjD%>&l4W-K2&&yIu{crRnJ;wBFC)xr_o?;EycC=q zL;HiSv&?4AFzhJmpVyI$OP?&y#BOT@oEe3nf4=_!%=zFlEEj~JWP76$SBu-w$Bo8^ zC*OJCAnN=%o6F1%88~Mjmh6PU6}XRV2pOp z7(!CTghwU=<<~K*$8p)?Nb5aSB`4~V2+!yTe|!+_!6{Xy^8Rtqs;%$ zmWZ<^UmQb*ShUnlhC4dU{xXbE#M(P@a572QWEmceU_8?XOGTJ;HEI$(R$~=dRx*Dv zUGm+57*ZQX04^6VB-DtnQ(;jMu{h5=5l~*!ysX%pFs4qx%qEp?Ry|M1JDs~MUmz-} zW>yQ)e!SK2nGCSK0v#wilKlxMYMrUzU8DAKl`Wx8wwQgUIK>$_C1jWAi62;_24hq^ zH7_V+!-M4$B z88lNMV@EYM=#0l?afmY~g#o%~1c|Ig4gkqDGxr&A*sp>1LW49x;1A<0e_Lc-_$ z@){m7svH#s?FTWYc-*+oX4m=temIUn{toO56uC_0J7>O(yBa2vvXz+B9C^$zSS!}T zn&@7`$F4JVI8j)}5x329C{a<6G0 z6DI|+*cu3aAO^3~@w0ygO4H{Cs0?Uf3)2?0vl?B1d(?=A29njrVz5|{|Ocu-|@{hy; z>dzI^!YMW=uzVEd3Osf)kPavi2F}Uw;1ZtUZi%25jx~h>&nQQ-j2@HP868q=9voLz zG4o595Kx~8J@fQ}0MZ!N_nSJrphBP{)W5b3Jm6JhLuX;D@WZ@u$T%`)BN5dhJL0V7 zXAhaKb^3UEuSxB9&7%Cs10|kzi@NadP#i+HNn&{BKO!BUR{juqXzF1A9+F>&=d*8<^uGlfEFv!nbb81qI zOaRHj?=o_A6FSi0V_v_gJ*0B(yrlfhw!BjdN;rq0y|dxW+GyIY4z4@xzZ`Byl+e(y zjQM`^6AK(f8VtqtuXdvKCnt02^Iw@oy^`w)b?+HsVGGqXB~gx!d2yvs7ec-Eki>a|~2&=!c9#d+#j_W10yK zr5_sL5z*MJXIUGDXcj)fX-pd?P2wC|i3po@aa`7kzBC&+R%&OFmH6QT2?IQ^0~L*j z1wvo|w?}i2Zg{Ll9%2sHFpQi|)>F-O$gA* zpQA?!$hXjmQ}h+VONJSo^$BF%)(9wE1eX_Xf6GX%_FVu$&aDTupN>NxOg->JgYXY zM}!%mUR>)$Y2QmY zf%Sw|0?d+mGBE{&*&=UaY|RXL>Ee8{oeqgR_~N$gvGuKV#%^`MG@qI1dos&6kDccn z*C!JYotEY-ye$aWz}tC_W808Z*~4KWtnw30<3i2H+&j;ViLTA*aQVhi`&Pafo*k@+ z(KVI!a=V)#`~dCG2fc?`Km|{c&3wGR_S$E3jNoj&=ZAx@{{RO|Ow9Xvx`{;gHI0lk z`M@xHfu7&Y`*;l;M6sV7#@8=dc;}2WB%%FJ-WUKI5H2^a9(TugkpvwobnLqMz!a>y z(VMc=V^QB0eJrAoDjf#?T$E;j?YSvbb2tE){VYrDAKv)kIYa857_H9xtHCJDx2^!q zeef0_lAJ_j$RY8UhdY$)$q_gJHlJ${3)_X@7}Qui#j5;)06E7IT;NDT5Lw<-`r_F3 zkEs0%yXPGu5WOyw%-5`O#;g$f)3MazZ-CDD()$69du02-m6dOykwH%J=K+$S->+eS z_Fs4@ghDEUp@Axu?+~xTlvmWn3iXX~N?eTA@_@{%Zw_Xm+m(ng-f@$PFQOINm?O*p z$kGvh4+bob(;v7s>!yl@$~pjD@a9Y~u6RZx30Q9+)d+w&sVOc|E7Op373!>3qi;aT zIOLxp&KHyJ$m5E)7O5?ZZ$H;Z?qpqgnb`6b^}FGiK^?urmqQyQ>n;ka8}Yz4Cis9G z(Rez}U<5}uq0@FnU61Oi?G zhE#Ip52bs#7)&(=+|d_eR!RlTGKmq~mR#Jq8Xz+q5SSM?vk!GUYvdlVIYO)-BvN>| zQd2TX&&YyNiexL&$bi-=%qKCa)2TpXGKvfGnWDqz(osCvLHi= zKu-93qw%e^jGQ`5o>!sOz5b|B3hEnb06Jo4gZT7=$f3qp*c=sZ8I4?g2W7X0n*v(O z*tBGRNtsazO1maU5>#hyIf+3EQU#D< z8CmgG2;K>#6z3hM7X&tN@O#ytdBlO})H6FY!=G?+*ohzXXjvEW=8b`Em-z?i?~%c> z^hw_n2YJsr?Bq2Og7pAjII*O$;)wzgB1bwwv&0%&wEd>Tg$2I+qCkTuF3fPx{-fy1 z;QEZQ4L8WkT3OazJWDYPO+mm!tuMiXcL>IG9u7yZ8i1C&)Y~#l`sG6!n7Xf|F~;*b z!xN^6R5L#DIh~+K6Wrugg?J=GDoPmt01ZFh7ojWx@KS4EJbjik&^M-)>u*`7$~xH$ zR0rx#New&q$V5+|)@9*SWkea(^ob38abkh4^3(LR&NyW_$3Lg1&9BE6GYpA`FRbr* z)dWCw4yNhoiWZtTBlKc}Ixdce< z81y_kPZ4C|eqyPn0bd6v1cekBJplZ0m==O?zZOWP-^T+bs8sS+5@gXz=C*FjP+S$Y z)}4zeJr3|;y{RF3E3Ae?*C&Y5c5vK2G#Wn@LmrcvT7)nosonASjud;GO-qoPA=%0f z5$$XY4!aV^VKpM3AvuNAM8C*l7H`(wfe6dJoQGXv4nm zT%M$<_9Ozy3!Be&(A{QuQCrKv>rqNZZXdJju1sQ^U3Ot9j1KnP2E@VZM$WKju0hoq zFsyYOBioN;BZH7p1O_H|ep!@(&eQ?%Rdr53hhe5}+0R$Gi#v9rJVA(zDTMkdF42nv z`#>9~CvfqSk)gRg7ot=Ung>vpYB_6@;z88p>7a%>FV^v!Z9rKc4Eu1!zOfL~mCUI?u< zK)et-;2$e%oXp$@ha%<_7~!g=6cBQZjujOwOmtW-MHMh-d@whs2w81K#UVitY4xHE zs0|S3PZONA$-UC$v^KaDDBiRoJb|$BF;bD8$O76TE%0Yy%W>|LYat3bF|)>l zC_EWq7f_aA0n3#z_WI;Cnm1w6x@i2B3H&oc7|tC>fY`&eBjJK+G9YS>4sA0QJJb(>l6jOMnoAX!^KRNxR~e$_1m2X(*H zQ+19O=?rL6?RSlTc)s(U8!}}zAkT${A>Owi?mkt8<$; zCXzrwc*Kh|LNxKUeGex6fw9gn_vaaK!m`3RhIGF!sT{yIE{`bU8g;>dp%zKH>%VD& zabu{xW?-IE_>{siEN2c@~u z{&Dxn*|TDpPE=4$cyp3d<+kpPwHe^9`a9|l%dD6Uh-C=FqB*%VZB8_+^nr|t75Ws~ z9TY!FVY4s!=a{L$-5Ci9F@$8~T@ABgO>uxBnBnN`1&~(qCU^p%0q5oT6G*E@jY31Y zOi(ue0O*;j7|ZsLm=~CM*^lNAxdXCvk-2OfPsmAwm^H^j?PRt#2RQF};+^Gn@fn3T z82RQT{@5A7@sd)`0t33a(9KqDMli0poU#@J6)^RL3P|lId>wG!_znWwz>BT=;WXa8 zRDxb*G8s(`IjKok_#A)b^5*~~G z!((iQ9kb;b4H5T5WWcef1(m9gjOB{cI2c|gSgzKgCk`ImD%{3MS8rQkp_#`L0Lv<6 z_+irga4#B-ivJtq!1A(?{ma_iZbZIyP z2ZjT4%mjwgO2t;b*#^PU0-}2Fu#ZS0=pZWf7lczXwK|udE9azx;{q7ac+}rf#goyL zBj8emw&4=en9aKzU~B+80Q!4FJ7jd=7|5u>T)1a1LG&^!FNdbQ3k3;F4~;Y7l8f3( zOX1)&OPnT(P_d`bO9gmzCn=^Z(8@hGq4S1{qtTy;U&juFIZ?aGwntm$je1i8q{v9e z$2A$SSHSF+)O-*EpaQ617n~ zwkeHabH!*uDx6(h!;Q{J8cb`ubiWcYm#nu23{=AbOmrsu+2Vduf zTIPw7z;%~f!vm;{3?2JsB;L5=V(3C8_Z(WMe3ubTFOnY=FfK@`K+`QVeBXL4c!53c zRdzg1NN2}#URUDYDxCSuD2VP9nTbY4;{?KC@**`+2%OAfz;2?Stp5PiI8;W{ANinW zi{Thceow_Ak|+q-$j^CX19K0l+cVBN?d*?RL7d!-c~n!>l!8hu1z$l1^d89}h7u7w zbE*;!5G6(yQZ9n*6WcD_{Wi1mwB4+O_f&BhK0r=Wy#iJu-9pF??==I$RG&kekaoQBJ-cqq}5Y5&M@Hdc*7}aYI#!JDmq3EKa_JW&(f%SSyudv(?3)`HkDd|pj zW14bw)nt}F{v8fP<-RvP!m&De>FbiW+di&2{l?9EnKnc=P!7XN7TpI`8cqX- zp5`kk4Nr?MJ9NQ;f#rXjt_?yJNf%!@$+F=GDwvg~5ygnD6}%$y<$2in!WF`l3we!i z0PqG@a@MRj5E{v*8I;F!!_~x3hfPIZbW*N5)!1e5?k9mgkbGDx1T$m|fGaQL%oE0> zHrbBAc%||bQLjRFr5wqovdBnn8E&RM=68yQsoCo?{JFH4!}0Ol*Za%TfZI*EB|p)` z1(+zyO^=)k+iVP7EI-uZyQADDRV#Y`0C{oIB3}e%&HgVM07@L-z+))+Gfh&GS1&Q9 z)kg;mKp3!qT3qBzKAgtsV4F*?;LgnPA+*Q4g6v`AvzO}k$b^g1rHoAQ%%!^O&W_Qe zr)lrhrqoKESpM@3Y3#;XRbJeo1x1&@m>|jb-rVtKIrL@y?;Z`7>Z5} z$sCT=vna}DZ;j}mK1pdkLFns>EMEa8MBmbwaZ4ilYuqW!IAuAk1WFzq2us_D;rnMq z;!Tkt&fZ=m4Z2)1W8f*iDCta@tzhP#H-#`FzmwLt(%f@X1L2{{`Zajv7@&cFil6U% zh-<_X!2bZ*aIpBOx8&C>{2g$9T^}Wa46*g&9q9x<>dU5 z`tESW?KJ9`rSx#%UTT%4jv0SbgVZQsSC=#!YlFjvUl$iUD#@~nTgQP{Ss^1LKfjj{0)VU%$+3_1d7L)vXPXc4Nk-b%Ds(PLu_SW_$%WkVy)q6j`|wj7#Taqx7?6-n** zSk2>>h!r5-Gsj@G6f;^H9PM*5I$?#$@+{mG(cx);e2S<~_143U5h|<^-kdXI3w|2$z$23Sq zVV%ZC8&=h--zKUIE@5ZMzyRh*j+8qI@F_0}Xq{^IEPN@tJW@qK>-|NJ&uqmYI?yDd zLIEIW;H)wT)^$XEiowR0g=zJVDV$0*;dc%7EINz-05a^4$+(!LOaA~wz1OQ;y&0}z z%}xpY(m51z_ZBr_9Z6)v-YHOpf|rk}BPubBwZR=tu!bkuKgBGPIZWnpX$i#qGqeXS zrYRqW*#hA-Acdy{uUn=9Wtu^Cg0+ALRX~a^H8F<`uGT2clAQq0EE0p}7fF}lkR9Ii zTSuqvvLTm;?mF~$p}PyZPAyhhVBjl*7Wz2XE{OQp@$QMP`F}QfV)g-_{jLLwkv8P? zU(wbwxydSCYss!ZUvr@vAh{#z35aLOOIP0vYAe&% zDhH$xK^z%UcI&(dH$}<*0gB;aIDjhjiPv!y0;K(w-)Y1jABY2xxb#2-3MW`1#Wr+! zgXgx1kaL%G3&4-H>4sA1_C`q^otPvlcsPN!o);S&xkV=QbPJ~EyiBKW-8%e&B-GVf&kA4lIWE3xs^;~pFVW2mJ9(zTZoqNuy7^aO#P0GHefAhc$~_;2vtDA zRAx*(a6?ujXr8!unaGk86zsVl;BoWGW}E;77fpowFD`>BaFp*VX9u>%c!C;6;CSD- z=23rYz`RIrZ=582ZYu377Dsp(>*niW*v+hbdM$-^Za@>FkaXnVVT7)80Bd?|yv5B2 z)KzN*S@W4+g28{NL-fv7dGol$BeQSgh7GwYWd8uskKnQgDm^O0I2Y}@{lp-4gR9C>&M&>XcL^Rtz-aHx~3qv6!zqcr%VUBB0d2*HAt z11*fub$GBLkb94zc2ADbJ}Ti~pqpPh<7&6PEj3HdV8Bo(q+U5@S2|*NiCJ{`nPLH; z7cr{_0fQ!{BVMwieb5$E2uBfnqr*Gad@}z42e*&%{{YD~lLL0y?PADXu#X4?fT_gJ z?1@WCWU!9+&kLj9X8uuxFiv5(b!-+KD^nMYJlN_&xI|EvPHg4ZlQ3tI+B1q4K*w>3 zz%bEvl$be!AW=U?*XHt*g$Zb`2pK#f_i5FYXdaDxLMdw7mWed*Q0INLizXde8;`-w zWcuQkt8`c#DOw|Rq#FD@VaQLR-HGgzJlo8~79u)Rq%?4*d3-X$2NpE0^L{f%ND>BL zy8fYO8B(*ra3#57x4b;hmXL3{z5=&yngA^jcM2gt2YDj7iNU%Ke;JMVRACE009+A} zOr;Dxg%e=)ndAceG+-l4S0KVPfHTM|WlMlL!#q4HNQ9ZuTUW2XBL+A6AI8qL!$?Wo zSzeHtAEZn{1b{Z)RkTdY#)=Z!*4G@jjjV9ENdDDUhQb6XMkuiFKe3#jrw=iLE`&|| z&9=DG&r`i6d^QsfH#LmRfM$d%x4lWq3E*r1*#mGdf^>Mq%sQ=%QWpkT+@&{gDu@c4 z8qZ2on7{$48OAUnidKvJTiqf$8nTfblZgZCE5{Hx*pF+j+SMwEE`NZYLjMhl#9zyj?G;`sjjo_tIDP9Ux5(H+n&aT`8 zg$;gn$b(NT9-dj8bIzPh&l2|~@qjVJ`D}ur6|$hT7%<{H2P47?Z;x1Ea4o3T{W~l* z!=oYM4l%Va;HZaMV6w63Mh&3P9~Dv3I*RgkJp>v1AuYh_e^|LC_rjy7K6it z+FnHk3KL^WI;GXOj2~Zz@u_-d>p&<$(hsQ zC72OL7XfCZutkz+x&U2~j03CP68_6xMS1JGG{iYK8Xc>BM}&En=q9hjoc&JuQWJ==6lCiHq&7ShJp-!Gga zYX4#jvn8d*2s)?{3%$!+(;{{R7S&V75M z8ITnbvzP*LV~FG43ncIWGQ1dCfZgVm4z$*|c!oElW;Ys{rcPYuM$|H4w`-O-OfmOl z@My8gos%RUwN%7YqE6_%ZMwzOf4e|Wc&ceh{;rT>c{aVAIT~t-@0Jc%&$B_X2*Gzk z1KyjUM*jeyg-5{snGJzKA~Jl_CHVQ|V%Ick<%Gg3=NFF|Y}N(ImT|epLOnTJ!{E*^%<)Jk zrL?xt?Asi1-$DNX59sFknDf*IF6<{L;tpBe152x(U!jaC)c0p&lqx-KalorELjM5b z7Q5}6f7do%J~8_F;kYj>L+$?n9v1aTon;BvAL?NV1kPh#kr=Pea}$vi8NlFhVJ423 z_0b9za>n?&5HBaD?rt~h2hM!`{5PcL0j9$lH^W_W;RYAZzOPtN)r1r_f zJuXJE$Hh$)gZ@?);i2!u{i$6sij|%{{2x-FF*>=tV5l!(2Or44oWeQ+he$w4Hr?o) z37BCF*vw%DCUecMisQP6DU9fu=Adc>KPLo^&MDybswIb)p8<_T(LLc2rd9}JG*z#L z#b9|p8w!A4u-%~zei>cPRPKd=)gj4r?23l@S;Y0=J)p&UK24=$TACu_FSQ zXg1ZumL9et5+xlv7;^5%$y09x0+$7xR%`zNER9$Ns-w&t9Ei5cKrWDIb7XZvMjjX| z)Q1H-kbSK!l2Y{eDf`?3R#Teu7%o5;Mza7n9c`gZ^9W|Ai6=h$4Y|Qgqd`zucr>}X z@EoRV0M%%%m?Wv?6a>#oLEOj_ZX^ySPSP1Y9TA30JYWO9j>D08C&5TLrUxWby_*H1L#zq-{ zX73k^cP1pFLo0KRK8IjL3xCcb-v^ivH&viXSv6K3Ogv;p7*ZCk_&ec->$?jA%-b@srtNj{%*YZm4c6g|E_23d2UFZDrg0tUMy@tPEw3NjQ(JFe+KjxyZW06DLLI z*Ia&Jcq;=saD^XxyL|Q0BQGg|noG;cH9IjlWzg!WVsQCeGe-%(4YxCBt9WooJ%t@L zOo$bjJ)n%xfoVXX1~N_p%KW!z8+9xdu~vVt+ojo0fjE9eDH#fHZDsc?$)ID7S`--u zFyY3P!&#OQStu)bsXlUus*zhlY;cC^f#!-5AiF5N3UbGvt$Rdt=(u22 z)dQ2I=-8Khz#jlLp3}N8BPZ#TmIYc!0d{4d^TtgRD2jtqdB;vfd8CPopJ{Q?;Txdj z9A&kU+Dz8~A_^WZ0CG2j!@nXxia&?Jy&G{c%PM`cPR*{k@n8s%oTNNQ^Ce>P59Guv zFGa@>X?%%h)rV;wYlNZSVNnvf0){!`SYCPo>^i1&BIK-~VM8cSEM5-$J;`+8=6rjE z8egxgvGDCw_&R33N zkqU5Asm35wT0%v|V_GUz<4=JVbPImQIfCOFZ3NtgCE85+IhL7d2FmaW#qOsH%CG#> z%vTIK`mVly&X8kjUdVf9k-Ou#a(6Dodx z*>6lxeFSBto;-(x31-<9m(1hNR!C|cpvD}4SH}1@R~ZKss6^B2JT%K5!!W|fOPz2w z!v&CwQJXTnDvM*TnCFyhyTQJv=0!uIn|9gH;c;Erpr#`{O^WDQ4Y1{g){N$T5t2Ks zDGvA=Ad+F>EMoTja7)y4of0s!ZygXny=)XQ#zto&9usUs8Qf_ZEM?^~Xk;=1{)vsD z*Xo8@sG8W*hD@a>QPn=07Z{*E%F89)vn|goZx~hurD4bvV}Xst6dnl4<2S>Us1$U9 zU9IeQ%Uok^cCgRBhZY22mde!Xo$BKArxF#jQmJ$iTf+P$mrc;SC2y09dcF}=DnXz2 zIEgUt@}Y@vo$^dCCdIfi+#NT9A#=p>x!i#^xw2;@U8{M?k+6KytBS6hc&KQ5Ey#U z;<8E`29+XVh8^(48MaW=ValCZDXhy*EsjwQ`8QoC^w({X_`&{{T-Z_qLA_ zpv9eDSO%;XOC#i5%uMhzmZvM!u$Wj^jbDL!F$4y!l{4Rv(VMEBQvD|_DL^!>Lp~d! zPAv*KW4gl!H^U6#Ln#epsNhHC9K)6lW@z@YbnS)(IFTF3w=8GZgV8dO5P~!HiSxs7 zTP3`kLow&%LFSoa_BF>`kdUtUctHW^ya-N86e7fl2L>5lkwgZFbD(GX|!##$jU zaG~R7tB6m$UF^sFM28V@#piT$Ks02zbQLTKvqgcyC+@lb|RY$-Cw}N z#5xVaLON-1EbfLnp#3)q^P8OTLfk@)pyjY0d|}M>QxE%O8u{mZLv_~5bp}Vk8RDbZ zHP^N54yLiom0Xd}-Gyv<(aUjjh$dWRj`;w+)|Pcp?2=urcx$XIw$$cs&@1( zXu}}8?k@}j{KawoOP?H1*$oIWua`Y>&z$}}jHw^%c_cMsWNlCvQin7PgY&&ez3+i7mB;uW2^cY>{v(wt<#2b5nvaEqomyPsS* z2h~!{*qjqX4MKBfPV8zNp7H^af8gK#-W9~iAWb}Qp5d6u!!cVpMtYXs2NjN?NnNlG z$*k?i{{UnMTwdlUF`l@A$#a%3pUzzvWeVc8_4sn?1E@%VC{)bTz#(k-)p~XgmB^q| zOZ!om)$VPELKCJ*pkx}mzQ>QFbpgpwS@7kkk{-Tm}pgX(+v4m;X9_=FhZKrO8AF* zT=o9|r0jHB;n$DT0E!#s)7SOPwd8MACHq%jI3pQ={K0CyEqOD~^zz^xYEG$vVY*y? z+H!U6@xttO38VaSeYg{iFV>SUx!|-zL6pJT3%y=$KLwc5{Ipc%Z;ef1#s;u{ z4JnqnfnwK328di$ai^ytCWzKTw-CBV#lZe6N#4!Lu)xCUYEmEHZ#t?E;hVz4N1p5_EH1C!t{uG9@!)#Nq;G z{{VSHg5_)pL}=%>lFW9pGEO3*ItK$v`cbD0edR>p2rAE$k(yS_bmG>rN(E--QFU_3 z&9NZPdogMV1a1*0CAdoYj2=DlN~f@mQF6A2PKJtM{tM9E9_7k8#dlCJk&`NX@}YPl z?_)vYyk~}vVqeS(5rx|+Ip4*A`dQ)lR?Zc2oti!}WpL9iK%1I%NCSc(wReM!i^1lRLhtA@2+Zd^ z4Iy@8F+|L~f4oLmR(0X`{{TFO^sIg$(Uxn$IUzw$rKh~f!q8Qe1?bIH#hha>r7tID zoY!tIIVp@j&alpmR!={jga%IftOS^;5SM5fN=fz4$eyuRs@_@P;wvz zij;@4i-Qf(k*L6l-kG7uoDpAryeOd%+2Di;o$b ziaEVFI*J=w5XITR9UBKa3-V*vi}J0+P|05~%jvdIYYh{{VO}?6Ly@6rnNj;(|sq>s;an8#Lkt{!UpahB4zA-yHU;DaLb& z`n`6lMo4F2>HYiguq`$um^#AFN3LppiR_141SoGVI*%zLz901in8D75RRF0V=Ng>L zn{(;Ovhc_za^aJ#p8!}JH)+Kwr66v6&z{WS#>LBjaY#CJy&tTbAuB|xKL#kIf{jo| z2;S#7rUjR9Ji+pE@Fdn*zw#Q4tXBwS-)EexyL#Ln0&24ko*( zT9H+={AG$@0`aD84lP&W7HpKeQg!`JQyb?*n9(OOEX3mQ{GxIP&;otAoEip(cKK3E zvn2Q;G>vRE!iiIoE?}k&T0s1h$(Z7U`Z7d%$F=KX2|!y3vBQR93<-!)gbcl(L(zGz zRhel*Oz!f^Y1kFJKHxay;09Dfmjev%q&*x%bPI-TeY)z|$YsQ+NppjIp+MM4 zqd((<)DNV2^k$5F<1r7748pVw47?L=7y`zdi+bKa55P_vOsHUO(+;mFwR?o#7a4?K zd@0c=BZ@@X9k(5WApl-=xg;5Iji<^bGv)_VPyRR_MziBcHQ`X-9bJar2~3D1E9TJkWIR6`>xM031Jp*i zl8Z2_y}GPp7Q=K1)dvz<^Iubj;nYGvPSAA8d0%azAn*zV=Mv01DW{4uTXMQH9xDq1 zG9rGO-EkP&p=1!-P9v~9a$}Atve(lMc^dZ7PuiAOphY>?0{!;5TZDb{8aT2<43nAv z0Io>N{{ZL(;&o}yGrPtd>{E5q7i`OfC=r4l0rQ_p!W_dLjF?{5WWe)b2@W*TI^Ori zDn5M}%BG0Frv=`_Jm_dUd;I3+bTHPss20oQT+L4PEg}*xT{$lX150Nf6nZf>SHFRl z&R>4~VIj>3O039{cAiKUG*oL(uG9G9v0^M3DC|&U5a2k+&oKajlFF_DdT-)|E}+I| ztAM04qhefSK*mOhny>`{z}3S)*~=5{UhowA?`JC^+F^nn6u(Cx3Kk^o8Wj=wXO~q< zt-S&Khs+jJ>+K-GtcDRXi0R|#769Om*9efw>i{l<3@5)6gWVa7V4BVa%H`qIFJJ>u z-(yyg<5dpWNEWlFJ$s5$tH*If(hF|{Dh{=^18SK+JSUFEmD&Wjgth6wL9-d=yR5|g zcR=g`9p$;QI~r!(1_r0R5(?@rUQHx1+@|oMHIoMu=}4gH=F)2qoq)rLV!d|HZWlrL zoui;6D130w=N06qVSAU(Zx@gSRZZ0!tZ^GA_-SnSPh*QMjk8)4OjY&7YV~8~s$xte zm=@Eo-yjY^J+*T)aXO+(-5q1LLs=t*jS683`;JEdib%0IxDw6oa&O-AOsT)YkG^B5 zgEejxUp2o>aBff}DrFnmW8>dc!&S5g6s>M&;&Vt^huh`;W#gEz9>G$#sd2rh2uL~E z9AH<%{P5Ao2>B3Y6_Jb=F&-H!3Jl_-ue9ZF=f4&QA{=?k1tmn&!UV|w0FgV&B0CY~ zms!W0KbRH7q3wl{()!JA$L4#T)#0}v+@LFaHqM>}U4hy9pL$;S-0q!S_Z2e>ta4-* zq;d2bpJ%DX(rqoA4pILAt`%a}vfiFs+CPuWDX|qY^^Kn4-BC@1rl`8b{+aE^I_HYo zq-Jd94TO#N)7!20${tOuqc=&W?sYkqDj5jFYi#?%`a&E8)sTty&JUJ{h((7?G?zIz zibV+opm+jT4kvbyp-B9oRUa91KT`%<$T5hB^l%-`*rMwlj?D4WzC28S=XX!X0fd(V zFjBOK7AUSKY>&WFV09!_97m={@y29YCJrseWf`zy1THmOc#xL{qcrx=hF3T^^7ZyC zL1nX7RO52?rK5(UjI($M6fJT6D-#e$B9Y4a37uM)ZSP2U-U+i!-$1DPi5vmJg6v^40YX(_yD> zI+p`AUMesQwRuI2YSG9DIa-~Z%H?EX$AR!TGF}yxVFuC7=8C7h!~i6bn8r)vPOlhl z4X+n%(eug0mnvCR@2L9ZKEYlH;P(*a=@1|s0gGm@FC!Ecp?5C+AD9BRbD_3qD-Ow# zqX*=@NP_A`td&YTy19Z2NlbB)YXnjRFbw07xqzG+fB3Zn$fkB)x)90JFjtv1kx&!@M6Yd{{VpTj^;3`j7AnL%5mtQ>#9E;AFS`naW=kE z0s~UEb3X7y8j|W`MR3j>riAB#<1Q$kwBgBlSl){&5s5DmP%}?uiyAWc;3-%pM6>vT zj`*7Zw=%3tEXF#{`Z>i9ua8-NGdUT}uZ`$GCo{^xF$W|*gzLfRADD+ zlBXfgv~G5}9sSo@O*}twC>#Cp$_RZ<1A*%k%7o`b+7VT{)6)=oHOWDij1bgpyeJF+ zq9vyRYzM3{ihn`Mkm#g2p(e)K;g=9|v~YS}1s)qehI5`;ShOI=O}Cx#g=Wj2>{Nb+ zaXVlWTA`}WN6rPg#9X#(794O*a1ENHu`94ma0U6r*H17DO$M+Iwt5a5g)Yp*(Sl9JnzvjSlO)1prV|1VwcN;W%fDamJmEw89I{9(wZK3XYjN+ePwY-tbVVuVFT>@TA-{6{P zL91?NK_qbS)!{7%=wS0pME=HYEcJUBSReay7;Zl3EIR|UIaPyAzh2>XdGmoMXUry|;d%*xLa_-BD(f8O|$erK4}5xQ6hYxMWygI^s}sd4DuFhYQ< z3ZMOFPA=@fo!Y+$-E|)8=HFJj?~X;E4A)~lYIm|LX*3xzW9I}{dnO3Yg!4K5nJL#AUDi45(|n;x*7UoZ(> zkhte7en}J38uA~j1)yeMusZBFCt~oI*YxdWyjvupNtdN77R>JOjNEo`!f>$2_UBnz zvX*IW?ILQ1tEwqAq|-;jignSbjOR4Q+KHsPw{wCnb7NeSbeIkf+=~oRz^@C!ptKSL zyjj%-2&J7A7P!JFTm%>`FBM?jipor6lXHw~L?u8*UVoQ`3AwZ_wc zYg!-)R`>cCL)|@rfNgT44|+0XdR9LCg_d1x8||}!X09~VAib4uL&b{8Xfj~vkh^%} z0fAVQ*RQPG+~cY~f|0flT|M~bnn^5JuaxO|&Fz#WN`OkvD+QcT6e@^1Me^h`H0(Ty z=pUNr9CpNcIpAtvpG>?*bV@7sqZ28P04fH7#u`i1@t9Hy^AyDo@$Cs-H{DOlQ=3P8 zLKUZ2SXPXQy!FGuHl*5js7ZTcInW>!HXp5-jgGR6wOqt!M@%7qIAge-jKae4*cHKW z88lM}E-;W3@07uaAf(R#euJ3ybDxy+JTkPCxtf3|U_H9tc@)zZ0mxD+QRiGX2u;Hj zBofnU{l}+vX$RTNd>x*V1B5YC?H%~eGv3Sr8=Mxpfnp+628MN-P=7c}V_ciPy?@i4 z{2o_8BU#ft7$~kvW(NH_-#U_D;!=aQ!p{#V2M~alU= zyo`jOyz(&r0HCC^Q}>Cik#+<`zGDvnRVgrC>SqQ5k14$7e4>qAB|fHjg?RkFhx=u5 zcwDR^1#*_Xa&SV{+jLLA3x>lh%*_oyA4DC&3x)3DMhp%VEGINGzEN_MP9>a*VvUR5K(f<<#|<%(@i)1W zq(@3R@EYMWc=1RYfB-^W1XPBY+Nr?|@b5QQD4IMuh7l+;=G4%7<6MN(2!6(Cp|B9a z4T*dYz#)CX{qdUfbDz<%b@kelT z5xmyQT)YV7rXXMnv(Xa{ZyK~pBhCuVsf6zw7@Q957cOZ|Pbd|pWYJGX%`W)%yTt9F zorh86U3F9hA>ZI*d>X+(Z1+b_CUc%nOcYJSy;>C8EP)Bw_cp%$9dRqmT^)qmOW8$> z#6)k70Gc~w-~M=-HbXdYuADR##tWb~q^;aOGTsM*vDDFRN9XZ4PA?UM!H=na*_<`_ zta(G?h}!1|JnNp=T)jAVDe#E66EYiPg`K$AMNNdKSTT&W!j%ftyt%79&1jM%sBauJe8@`VzPqY+U2-BY1RW;!;Qs(Y z_0TdM7Z}vc_*i5MoOl$)Oz{%2n|ee?m+isQVy&@@PxNIYm^yU`g!koK>)Syyc}G37 zv{|E*zH1H1NGEr5938huu_+(pyrdTnE+X4r>(ks# zJLI?k`hsEG#oo7!FkpdXRe+~4m*FaJCF5-ESIE#GfC`7=lTTJvCDp@m;!#2eU zfUH3^mRZQT##*BcH;eqfKknkN8iM>imhtk&g&^rO`JN6Tkx=~U%G|ejhRn6)j4p4&UC-e$v>~`kkYCz>p_M;3V>~wg+x^I)!HZs)(FvnP7z`+A0 z+mv#Z2^5Apq@I&S-YC1-I<1ViyvL^*c!{-bK+t^ zUqbi{vs6gpfIb`{3@Gjm7#G$k8{jdSe<6n-IC{=A!KmB`*%$u+pL}u4qAI}MdOIID zwdAnN+mhUUXN;Sj!AJpMzW)H%0_UDa-i?Za1Zv^epr+Q@8+F*T#kP{y@(nvW=4lJE zb3)?jjK`i2q>lw?=uGP$Hxpk$9Edj}N}S+&-)$N*ojY@eul z<57FUEWJQ5GUnV#Ez?L?)PiJZrLD!3P@Ac+6kG-)6T+bvaH?aP)J4p9EW%jICYMJw zn$m6JhTb}0yGR9vY>zqMpj30>H{o13Aeb*e)408zW!C`IVKR$Us|FoZaRZq|oV4Yk z{{Uc64QQB~J29Wm0Ko^;8Y?_S(Z*poy;L-J{{W@+@Wk?W3$!#>)rbJnozn-lvWlAP`1W=0 z*yei*rQ#)cy0BU76If zNNqv?0PDc6^L6*`=tAP~e0Nd|j$Ul{<0%!kNNLe)zF&esMKOw5??c^i>!80pT(u?Q z4H`oZaX};I=4TBqM=J~lEJGc$g@S0vEaSd8R~NuaNY&m!FuIVpJj6g2#GB2JjrYu! zaa*m?6p~KfOJ#*rhj7c@H_61KGDKvTF5et67}};voSvRzgmS^{RQ?n5fd?Xpz={cB zkA`v0=HiQ!EZS=L`Qrp<5z)8|_L;3YJ)Ye0AV_19>obf|gEYYgXw5iv#9Ca*gS25X z<0{-x^rbHx$Xa9*@ZaXE|xSpl=79NQqG)aAyjpxY2xRnk(+xxaSadW%@UMo7aS#hY#8ca8dU!j5|7l)%rd{p3m@2R2N_F+P0a zxR2Nw{?B;!%+2a=sw3HxM_AHS5yBijlNru6RiP9EQctRfGn+s3kMeRO<+D} z7j1Wdwc&#Fg$z+JtEc3mYb=^2`Har53$QHmiODaCk9eqoUI@<4_$j&ilMRu>4|lFx zP8OqP9f_Zp4B$Y$(PK-VNPw?UisRDGIeqhBsSMuKnV#RDH9Bp~Drrjb3&Rp1?0Ne$vT-x=I?vn%rasW9O5YVR(RSh8djEFpbj%qoJb*SpZSM5X=kj? z0iwGY{ZBpRfd!a%PbqS~KKQh#V>hrz{J(tRqhQcoHJO*>>K6elU=fBc)22=&y1PqH z(PkGqaDoxUhsiwY@szsdo=wyX6(k8*SB>rqL&XgdDX#jnMG5UjpTXyxk$2Ey{{U_R z^zGs~&006^IPLaYhf8Lx_18C23Vu-CpYO*8(+a5dCUxDMII#9@vYkE&?sx$hbCe1h z*N;z(Npp71bQ1!_vnLdq5mQu{h`%GGmq&~tTq9`1ZzRETRXv6b(5hQzB1=nLL00RZ z{{VQV>++xmV`cd3Can;QQQJO6G`Johy(fUirSNh;*1d8%0Ipx=ISvZ2<6V3+ooMBd zt^s!-&k+9ropTmYRPK2)_Jr5R8i2g{D!9PQ5d5ebvP}%GMxn{{j|{2c;v$mK*)J0T z46sYhHXm9vl8}(GSh@M9Ny%h{79yB0Po{XTr%h={;7^ghUmoBvFBV>dId2exJEcnG z=tcD-4`!h3GE-R{J>0`Bro``A1qrS-%ga^l+#J_TtVwtkQC3RgP8j6>06DN{D%*DF z>+E;O8O$ot_(T5y#SW5t1eeAF*i7+_cN}yzIGLhcORkwl0?5T6fjptX_q3zq<61=Z zNhQUaSMF#+7#l3IB1m;>0pU)IC1zKIrwkiFyWCWBnq(?YP0Qr~ z<=A$}h2@y4K=i~FN14earTn8UiHvSer!89+FdAhf)^YbJB4tCb^{28XEC+X_Onl&*` zwfKS~wBd_6R%JVb11lK35N?Gt(U`8oj{F6g=z!i}ncc*z*$_48AT|5=a*_}b(kHXO z959rYf?#nRm`4cIHm(`g${*u6Z#;o10|>=|AA8fzIWrFUqXQl%d*c8)L05G&{{W5) zL?_LCXGMHF<|X&5t8buRdb~g@jx1%PzN)HlwTc7rr?&6EZe-)l0Wz^hPpu`~ez=6?CogD0YiAAx z87!2;gc9lNZg0wI{>_&r_*a(ZpgAls@n(GC$^wSup!4hgI7Wsi?WpRQpY5fTu(E48*v&Dd6E{4*9w^+|LPb zB=H6L+=AJIe>nYv7vyJhy!pJ{aLPCShop|L4-6Zz(lY9EKfDafrh8~$hF@WMgnFu4 zkjRAq(sbo@HN4nJm|U#f+;ov=xBe67uQ=dwc1o|9D=f6v3!G0)B^oQ*f1HAAR*LJR z;FE0dW=mmLd%XK+kgq7u)KUKcSiHS2xYbS9YR@=uQY>aGlrgK1o{dXmB&0W2-JKlq zinj6z?Dl3gpP}|b5PWD{pfP~VWs)4*)yp_L&2hllLL(}Tzx+OVVe-3-+(pO3)y5#* zby!!$XN++-)eV7QCJa`7@F^N$ z+k_m{3351O=kr6828{5>PG_!g4}CiNood5tEXty{DUHYyAP9My`}&F6KY*XYYuEfjg8~F7eSHSTxCBiYn{V{N?Mc zg%{%nNTS=adfDde~*y>-oS5;mK%JF|1tq!I6AEsc`%sdE>Z|eA9Z0QhULQ61mc! z@+YT;IiKU;8FC>yc5#9k*HN}#1Naowiw@%HmeTfy zyGOndj`R#ZXY-mF4GU1guG?^$Bh@ZU_r1#Xcq~XyNIy}{&A0q1PJHbZ}sFOi140; z`lHP7ie;_jB9D$bf|z))E~6E~5Se!!&LbR^>jI($8%zjiigUry<>CNrtkY=E)L(nWZX|QQXQ)I*bX|;Yf1^gA zMl_B#!KR#IDuRPQh(Sxq?-OvMCs8hr?7N)H0&M5>!GMhY^NOTlD9MLKnnJqb5Yir^ z*7t?6>x#0=B)TB5QVlN3am%{mVplnI*?AUnk}nc+4|#C}M#WnUEiDjGl0pt0yWpL# zB5lHPtMJ;hDn`#vSfLX0`gJi2mSI6kH}u5sV?+0F1Fg1xR<;CVCOJ8c0|PhAU%vh2 zI0D3SXAF9C^~B3JU*Y5LJal+vsmuPNX|iPDBopExqn_`2AYs1|aW%dCPWkbXPN1XS z5?%(-GhN1YwP+tV%%ss|=*=Da5S;47f>**k=?%;Twi>Jfh#quVH-IhSY8Z_(Cne$D zCx9m6jv1iTI~eSUz^@DPYnzCID$o+Ky>)Y8NP*VUVGSOgLFqK5)=pa4rf2r! zl%*ezZ(zie9F`#p?G-rBDlLz}pfSle!st5CNN^9L5Vnc1+RHbI1i#sg0w)V2p#!VH zf+43eB~6KTu5sZuI}(XR5(jM|Cir}xDTZ0?NeDtpk@lbGRD6GkSiIaIII4lsd{L1BBbk+cvme$D8#VzN| zNN{Jv=bos@O2VMX;h2s}=8Ob_3<{1xPvzi#V%o9+H`m`+m!OoCAl6WC9R6q|u9vH+JZZD;#v*6?eWLraMT+CrM}Ke^`0_DlZb6!@BaW}gSOZv z?+dFP@Pq(WQ|@==({C_J3fT}JnmGL8r&?dVy?MPKJOrj6dNRr!=4+8tKGeP=D|tN} zW>wRPpG4@NeDn@#<9C;C8pty}WDz^F+uY*2XkRRbQMwP_BK+_6!>3>P;Y4FEXi-cS ze*SUt!C*e;e^~2%BFjVyBLdEyW0}#w;8_6&+4%aSF+v|^;;&w3dGEQ^bjno{#8<$pLxszb3QRwQXGSvKFttN7dMm;b?TN!YEB(PDrAQ{yaCnP~ z3<^Qmz&uAYXHJ%ym1E16PFtm-e|aB+7Ec!u3>bxo-ekZ~pv?VH#+Tgi2W7f~mRmR@ zhzfP)wZT?^*uvr(Zv*LMC6Eb#NEmap;Zx>SgB~3l9wFA%g_%N<_;-!8pfc^yAv?Jm zq^H`GIASA;Ez%NW(zOgZ1aAaWT@bCWc!Z%F)J<+{faFC0q-S>>q}Ko?1yS)9t>d`OfFRPIm4Yy5FT0B+M4cZ1g4T{yg?_}RlZ>ySf~q^?n1 ztHF*+wIw-#LMP2blax=c99!52@bFF$+p_eTSRkA`wwG_l#K+A#V4!Q54={7Te~w$A z&Ltm{lO$WqoT?ERwhupe*DC`xK!mn*N3Jt&F91%2{L<7pEva;cPs?`i_m+F3Y(o$k z!^FoI%$a6vv@_#5JRU1zfd&Vk;l%~#`3)a~-ZW!ku;6mgoT~2%?PCS31Krbww+&Q! z5?q)%%Yl>W)vhZU(lXx`?RidXb?*qEAS;hB#c#nTPI2APLs zLOvWoq*j~~!hP(lYm7@+Cqx(FsouGJE*##WgJ}Ld9?5zHjP}x49pMB9Y*vAbQ6^1X zu-KTer8!)h^N$e%j>U&FODhsKT#=QzCLA(-RCeZcG2G$chm^EKBuQu{ zX+iJY9tDuCrY19~+H}t%OO(SzdPDA92o{D|`JV`AbWH4y)Eg@7qwYK4f)eQYbeEkm zR}Kh?OkD{*+CNu>x!|B&AH#6C)_FFKXPXogWY2#bP}?x}YmgL-zvnxD3VcDFd+Cle zxgw653R=zrcu;60ZArI2=f|B%Z+=o&sJGFnQr_cIYW^?tyrazz@a5G*mT~EiZ8Mo;x8K6|GmoU#j zDN04=qL)};Le8f~5P+arG?r|m2)h82Ls@0xZpPI7kj|K0^@PHCrsWUX=ovdq~?(s(8Ym!eBMgx9up2;0rPHWB=Ex?I1nYuBD8R%LkXP3J^*mYesP+!$A)GDOLiN*6b={8lIjqv z3LlIj!+PNbf_^ss~B(VB=qOFt({-nkf@8zlLXgu36l_8cToR zUbrGb5T+Mh?sM6`CkS{Zh7%^LPo4o4nP^}uO^y8G1ue7?I!cmqK;>l_-Uv^G9H{e! z7414fk;+kvIXfsQUTP_V3iYDJBZ1eNgWC80bH8YzqYB&jtvko~v6Y{aubViT;+coh zB%AE{;8HRfTdifx$14~leUCAVtHq89^c-~$ad)0BMNQ`HaKZHA_Nq16Tnhbr{b#bH z!o}z?A6A_Cr-VjEVf=o07U7WLxZae4XIy_{drV=Db%%*WVsWtf2P30Z;RBt-PP&h1 z`*PCrr0I}5U9_0uIl3dS@`OTI>hn%P`qa@IEhkQ78ipJU#o3>C2o%N)7)u!$rWiZp z5b%?{0(fbctl(4f%aQ=GxA}Re{T3BL{4kh$;Nz01ONcqmIC9P%Kp+nk(fuP8XCjq6 z+{lVrtj!q{WD(^C(&%z_Tf=OPq9qIo{`ZK*m&QEj1~yCXkBCWyGzF)k#zp*?RHti5 z3uiSU#uPj2h9P6v-I;=il)Z_rqy?$8oSIH*cBIR6$%5w^=G|iv3PtCQ<|bT3zDu#$ z{{Uc@4KPgT*>+mtz%1E@w1Hl7FVhiy)0ukA;bwV4We3pdBoY=LF1P zRQON!Wd;8L97j_AZOK3W4f8THA$XHvj4xx37Fmc$pwF|r$;>=x4u|;Ws`WJmaV_RWkiJlhK?i9D{y;zflAE1ZMIoHhwlaluwK^uUDQrMpxVw2G$Nq0`smd zpRNFXjGYEZiz!w7pvCqvMx!iL!d)_Kz1CXOv6Jr{Uz*Gp#cB-&0N6GMFakhjqIaK0 zG<}6(T8FfPWJJn3;#5`PIPtK4Mel)#-Ut}(=}uB`ex4>h$g7i}rA`L$)Bo&}YZn{CPx582r)%)IqS-kPRVKYhS=(;zad>3_51p*ccm-WLy zYcMjbpEImyJk6kW6uy}J{{XH60!fmDu9E#bxT)+H&PCMV=`YU$Ka8axW8sTD;+;29 zb)XWe9f8CmUlM^2RkYTOQIj8#vZUC5R!q->b{_(F9a0KtI#EMXvyPisD*cERttOjr zSI8qEtLlbip1Fn0RzmE-izoQw@per5PyCOEk`az=U^wvnycDZdnbkrY8_S5qiGIWh z(W?wj!ZAIq84lPm(}NsHV`#wY;rd^WLuyR!(s{&m>Sa7I@ezgXy_qS{qNP%5076VF za!wDoHnsl%6>}-{CLE8{{r>=ojOIYr=%2ED~9P_-h|s6w%Xd;S_Dc#&zuQSD{YSd0Qk-&b1F~=sHv_P+r){Z z+v0kw?>Ml=kDXg2iGY{S7jTekol+wFGRO$pjkvPTqpN*RVN!w$n8wLX#P5XW&;(a( z244+nMx-zY8_Pb2Ckn;y-%>imCReQB6-eg|nE5_%0L!={*{a2c13Aax%h*7V(6$<+ zrC=K%+H8X3M6tCYfSEH9D!G3pU>1UbPcKOAb;qK^T{{RAolWbF=wN$ftdcj_WaniQ zmyqJsV9Tx(gLyF&<5Dp$GxXGCmkkoI3OQj<(qO9zEx_z7J$+`;9%vlx=2?z+bjYPt zKiuZzim%k#y&kzTqM;tcW&8f}m}vxrK*i}zcX&z$$yWWs_?Lj5EkeD4LITY*n&dIn z3kw<0>UVL5V9|6E({kQ*GOTe#V&i**M@>wx_A8_mmKau9UMdnYkVOx9yZP;-M1twiw_{ldetpeHhYfD)1?5mk%fZ_q<3 zm>pi%>$cS!CQs+z{kfpfr%z@ACPS?+4yPn&P~}?qZ;!AIhcVSye1??W0m5T>gv+-2 zc)dWNTO)nf`eg?mUn3Syx*YP;#;ScuYSP0QDKT2&V?dmtvjN6sJi|L59mp9w(6mgd z53}LlJ^RUJmXf(-<@eX>{{ZC5QQ94nXFjJbxCsbS$A?e6a0Pfn;^nT$*&XvQ8WV&U zfXJ8+mEpfSEyItn)#!K3?OuWGg)N zc@Zm3xM~-h=-D#ztKN!gaJabgxg2HF;wtk@28^S>f5EsQnt7!m{%j8Eh83 zbjNC=n_F|Qq#G{*#DX!>{{Ru5_++b5R~6sS{{UV|13P)!Pe12@CJSZQRjG0H-NH#< z_;Ol-QW-cn4{1;N#~^b7ye`2QD+v)mpu#tXQ$hJG<&YlNF~V89+r5Gi9I}i7>)<1w zL-B@1z~+~fHsiDf=O`FpxYPMr4r>HMkd*|N{{H|Vn?@wQ+J^AT@hw{y!SuhxOT*DZ zTRyhKKTOAnuZS9wVZQrI!KWP;CTnsS{J4r!&#+X7Jmuo^ll{az51LmoN)b0L2qH`a zS8U`G6&d_ZLmtV={)igMTYb&jfd$Bkv!Sr{M&}=-QYTG@c0c2QAaZ93=S5ZM$A%4T zB~Yn)hweDRJr=BK`#n}Tb9f(r*7r6C=OG2&=Kylxv@@u97Ez}~q@x(<=YWzUX?LMN zy?k>HKqX8R0^Xp!ncqD!aQ@tttZ1CuZIq{rYi+9up(!wGeP%BL z5%cs77)PmtH-o(W4BCD1U@FES({}D*<_sf=%`ek3-{;!%{U;jS9JD zp}$JRG>ShsRvd-1k3Z0@0LC0M4TJ5ek?21Af#4)PPx5S7%EjX>gWqFeZRFf7b}vIy zxGR88AT2k^#B9yY_F>qyWc zG;;09n1y%riA6|YZIAtz8{e5y;?$t;TO9uYoU4h%I*;5QhNe(&yo?&F;%s7LGr4b# zTKim%l}>rg{K^qo0niZK?{v#>6)BPOLNH^50ufzOvFKCQ* z54X$rkpc47Frtkm1X5b^?a2979B=h zNy_8e`JD{!$(`H-4@Ds>mnJ)XIDk0}MkmrQl+#AGDOkWVK?AVO9ziMz1XNGS`1$2j z_*O9Yl$RZoncnYKiwEn^UW|g&_V#NN7R=69jC5Ouz z*`7^zW>FEJy*IZKXbi6HSri!^Hu9wVHFt$o7R_R>HQD4y-mbr_zU6#_wy?fgb?b*n zj-Hu2fimw5z!6RXtvdu_U+FYv1&p-}G}h2M5(~~$?Nl!5$I+oF-Y^Pb;-FhPGYbup21cJY-&dFj+L|%4LW;o=MG9i zm`pNsFNN15hg0R`vteuh06fM!t}I8UFpySnijk5^Qo~t-_fMPVSq7iLjg{vhc=niJ z)krVP+{42piRXGibGOKQy zCp0J&2Y*WkO@iTp70~iB71r5Z^5FcmsI!%A(d}(^1~VvQER|u|K{90+@6W*g%&id} z(8CuUzK+i(H|PhCK7wA_Q@V=q5ue`X4WmEaQ5?pr{|fyq*QPUfzdD&N1hBeUY8vMWBqFL6Eu15tq6MTG!7! zeLDnt?`Qme@@B?QTk-*QFc*Z*j>2dG{{Van6Kz{GkoErZnIWNL4^FXFI|Lx9=%3A& zJ{iwHEsqsLGh3)-;sD`cv?yuTGaYv1na&kETC@W?x0wTz;1wT#9Ksfi$|y*<(fV)| zo*PD{9T9YWaxpeK^LaM8TBPK1WXW3)Uut(bgA*c+BNGh7EPE@wDJD&)W%Px7oDPWQ z0kPQ;e|U)czygXb?`Wn8PCQe#;rtbJ38xy|9f!cJoiFpcYs?6-TVJ`GD%CW0Ryg44 zk9Egm6gzeSgP8aW)43vN5;XBjx7Q6x|MY2D7bEe1?#38~-xxL11CxmDD^Y~({m z$FLnC>rZpYF&3B%u>CWw@gR~{%%qYyeuKSY0m7=5fMu?`VUrQb1)VQP*_d^vzzUS? z{EY`N(+WC9Yz8`~yjHjj&nu%nV++J6<`Tt$P*yHKs_Kpe#=I(IFz@F8jB()hUHEX2 z(flBtK82U5#$Xf@mis@g{&6Y=u3n4UeeZ?XTLq1NQ|J2R*ESc0&?qYt9Cm8Nji7w= z@PyPz006M|8ai+@*>34!LD-#U@Kg4RPv#bj&4xgI2G=o!!FwxQ@geXvw0=3~+fhg6 zmU+%+imU+~!Cwstf#)W>95RuDP09%vUI_(>qig65ogX}-mN4pIa@pA?5Uaq=ca&UZBb1b`nx7FgVnO5=)gobmsBg%th6I~erqR$gk`HCnQFk@ch zd67`x{8$vs_pjn#!D)KscNqBJAFaGn1&?0?JRGS|aaLM9og=2&P+`Oj4*r>LYV=?px%`5~YZ0dl%LDQWiX6((%iBS5Eb zNF^4TTFXr|qOt>sEUuIE+D~}A2DZDz{Eu{f5#&h*bq4-gC;iSzT!oxh*9i&V7_A8s z6GM%M=yDTiy*<0(!2%ms9BWav7}V#{4|sCpiN?yVf=GIVKY4=is!>}Fx{l18B35s5 zbZ}+Xo8{#+Q($Ch82Q|sFo9=W5yTid6C8Ocf`n}gK^IcIadec)1+W0Bb3rC)#aT~p zl2N{aIDlva_3-u5>!8l*7?iST!(ToL#YsxJXkx+XemUaTfl5uyX@hfz{X|skoQP=c zjri{;h87q)qG=14lFyK88dM~`_xaZgjG(In)V>RjTxk!%Al4RASuNNnZ! zS>G<%l`#&>i01HPw-QrM+lQub7RU!e)G+3zYXOSFGjx61XIRkZ!Z4~{N?d>V`M?Od z#Ir3H)W4~iSn~24I!%npajmuL>4sU{6kz@c3~q`2IPZ*SmzpfhZ~c@X=O@DQQ!o+# z08R11%*f3@N=BUj0K$egm6kB+u%6+LA2si2Op&eJ-OvL@3YG*959+*)0e&4!DT5JhQlI@;d!;$um>N7DC3OKI(GP>*t%5XgXLTA(%6Rjp)vvwcx?{ zyA0@BR>=$u8Uya2CQ=-f-3MvmTO63rCpL%+mHcHqgqRs?)9YNX@t(%5_u)9rI32RJ zD;#B4k)vdYu)$u5YWd)3R+-{Q7{2j`u0(Ng{622Dl304?zn6aTKtE^N;+ zE@@Ba<`If?5De$1a>mZCR_Doc%uDLic^q@5luwjWtcv8hL!LK{*+Ck)rRdDk%P)+` zDq9Klc;-yW>mS-;O!#pU<4~m{Se*`A#!|o}6s!XvmLsq|-voqfVNr%Mjcaql-E$<> z%@>_-o}X*5KucCIQh`_ioJfhLb{{XzDM8wM_fy-RAVeXe&sU*bP60i&_)vYK?~OCy zigzWxzvF8=>}|O%5ZQ4+QNE>cOST=yClIP(k}?@rTX+eda6tEzGUAitmTnh&VfBGSj>l=850->&VokrF_@TmDv`3p6L7Uafgd^?cq zu|1^LIGB10UFa#C8;&v=iLXfh5i>v1+C&^yx!NLL_ReJaw9?qhc%2!?2z-ZH^>X(l z^E?Q#WOX=l0|&#)e0wo_xqcrUW;+aGR!pUxP1WRwOnap{&Y3HnOLeV0!}cGB@K6>-9@?Ni*|=P<8-_; zQgbCLvUYMiPeg6PDT!1qV?jRH_r*1`d!81n`EhNRW;xSzW^D=3$SvdW&z| zvHlJ>K5jc@s0*h^cxOC+q7zVrjLKXD919AG(e(6Ajke-sl_si-pLY6_9Armo8{hWp z&SX-$W1AMuLtKPyDR2o;_@f~!4#3!B;vAbW9Qs9J6~N zI8E{=+AQaVd|rY#3dKEh4$QD*sEYws($k$QVcoxe^v@e{AwuSZ^Q_rV2@C8~p!Vf2 z<~6(g9SHoEC4uwDZXXP!f|;GpJnWV$JeA;N<8BR`HKh(1{{Zenv|Q!WgkxF8bH(kj z8=Yqj6I5!DyK=%PhUpCT@&>(~`uLxp2oUwmm z>XNuetgb`4)d0bKOqvMci^fP{eF(J!`t6J~O)G$Rz9esyE!}eY(f-KdDB8#wtRkK4 zuOAgnXQN!#3!L5KB>7O9!!hxNFxfam`CQT^F@VDY@&=2dMm$)qAk~x8I>MzLQ3wp2 z1S16?){M=0)#7E+t9-Apk(HSNA$jcOvqNxg`?HJ({0+2+*z+iNs5n_$q~F4(c6_{H zUmEorT#XbFXnAa4@Al!%#I2U>pv0QqdSTGEtJwHSUbw-`+bP_R@%($iY>E_XHfJrf zpE)DuX@7z0^8{ufqfE21gWd832L$MX6i4p?IFV;@BXz4Ks*byJJ;xX}A zxlSGH#q2Lvb^id4A|wqI1E5Xrf4mr|;)pTnnoNB22d%Hz2DU}3r<9Rv6Frk*{iBe^ zPrZ90iG%m#9gWVY%P(`*7nr1eg@A;Z-}O@ajzV?~e1E4FzNNQ#Me&PQd_d$Z-BHD& zz2(>#Yl9~pxiHDzl5r*MmCgl%tvN{41ZW3eXkVBs`F1h^nUi%AIb;f6d}<;~|TZfH3{?alo|os0B3^ zfYvWEykkk&4ufEX9Gpp%ZMB9IRyp}9`U}!a3aYB7iJB#Fgu2e7uVcPl1eJS1!z~`o z&UM!)x(=|b(8g{YE2v|}Fysf?<9FI?>noZhbiuOOJuGLy{u17QC=Hj?f9+=`5#^dX zDqe>MuOp={{MTo4VX$`O7Tn^x36d*eF+e-%BI)jHPkD_MY!8cxa_Pf7S%tr_#9YAH ztrM2v^7DHwO)}dkp;s@0eB(ay_OMrJrhmVj+c$~L!40L>hn2THW@W$P8{{Irz4{h2 zChgx?oi@94dmVATT&fgda0Uf#eZ~%Ium=d)%t+;8B^kmSuzx1>PaDKE zZt=S(#Tv27=8Df3&ed?_ZfE9Ovr|ErIJk~=7G#LSwheISNd0KQ_K2W)u%N3cgC57& zHE|NzCKw;xGPo#CJfd4(I7V_6hQM4Jgm}hve90Vc&vwl)3iE~Deo4ZY(d&KA>U{Az zFsbrDO^o<4;=iq+Nn9*X$dki&cG(gNk4gUkT+ANGGFlyD<9_h2@<(IyMK}rF#}2th z;MQIaKF%a|i|quMF(~X~E&J1E@C}`$-bCNd6|}ut|)|WSp^X0J`+7ard;>+8g=2vu`V9R!-D?+Du^>?H{%`h zzmf`dcX|;>nvzE?_VO294M&@UbWw+5oz`qHT}d_ z;P4GhG+b$M0qMz#p;b)u)MVPm#ai1}BG>c%mxVX#nT7lV-YJ*TEXV9iSzDqBFp;c#Gbgm8|;*1befx5s1&n=_V_&XI^ub>>qE{Qn* z0C^M$D_{8K_C!q^gVo1RDK%Mx{vgD>ossO?AY%T3Vc~D2Ukiqrr@pco;w?8nybhLQ zS!phTzcmdVz(6 zXaH%6y+d6G3;B~o`TlhDyB*(rJ*LG{lw^3ORFr!~SF08ehR~#(O1U9Lh}TIy%{hWU zUKtxjGDBFdU~4<$hZQtri5FMgiD=-XnxLtb z&?Q@$W6VkezOZkkswU?Dp!7&F}CnPAh`{lA~@I~R35Uy^!p*k>2f z9O-lIw4AXaVhB;XRu8`%!_Tsg7CTG$5wmP^v*0^t)&a%kg9wI=V)1)L-;gbqVL}s8o5ZPrFvNGGfPDV|Z{Wu7tORx)+^QxYDXo-0F(Yn6S6 zz#MksE7t29C`>-~Yny6nyZfy3)_%De=Mo(I4zqFdaLgp`+h_j(ANPVUF7EpSLW$zM zGgTc->mn1|Nk<7tRh|TtmyVe2jMD8B%842SON)SvLK2T{EGEhjqj$QS6fist$|2Nc z_`e#I>E_Y|80W0*b{f2)B5g(@(r#ZE+rtD!1UUtAKbXfKD&;dFenV^5(%vO6*(bE` zIj0&#Nc3wR{{X?0ILiEjrk?@_Gs5r6^G5sUft{4K&p{OxWx=Ui1I zoT)hLC@*-yI30*=dfG4~pm+t$H-sP}AVHx~kY()z0%Js;>&I?l9)b9tI`^4^p(n#F zzM#HC9NKbK3-eb`#HU=Ay`uIrE?GERAl@Pu{8<#cZRE3U246_Y#6aeyRa z%$-l5=uFrE{i;ZE+4pkSe9*fC{Q7Z@2dG?7Vc8BP)tsY$TS~9ciSc{j*;e8gIGrZn zM~tcEQGTLK3G>$yv~E2>U>B#PISh-~MMu!@obwotmxB>Tww$M22D}_AH*+%CT=5`v zQE-#?5|zNHSLcBaS5_036B@Jz{kw|Mt{iUBX5Cnd52u1FSGo{GT?S586=y{A<)7bO zp2{E(iUIQ@xJ;GMr58vi@_!ssE08JhGv|Y)Lp!n^J+<}2Q+-a(r^e&|043xm2XMin z9r%X$yI3fnJ@TmAk`7;bcg<%jMmC&B5g%OL%#-ytz$ZSakj@uN`|;e|3z+4S8yxlQ zak{Uc=S=YT`^Czs;XNjRyg{Ofq6?OSiWX~#orV66 zT2j%Y8y1%=BbF2B@|m4l+k4cU*EaB^DKS}B*7+^LfdG=B?DVv7%*pbSo$LzyFMKo-X?S16 z7IeI$bXS5)&~5$j{{a10H~M|&&Lr$2W7i0ltXZt!E4J$NQa88vt^b-Fu6HvKgk^IU@g%YVSHtZ)J`S4Jv*HMIUdQnR{5TOc#g z4j$&tV?~%w(`;qtA?IF6yZwJ04+T3-`f%~`XFLrS8@`)tz~BYoLlK5psDm&#Jgi|Y zgr}-U`SC&c*-V-0Kb_)_*^q~yOl=6z+g(Yy+`voC$8Zt zs0}c);KUUSR&Rr5k#P0QoxdP;T+FmgOLfI0A^JcyX~@y>Z^^;TGT=E?+gvn`#LXNv z+D&F&MPsBytJb$TC$CQdkNUmmKfm{gr#Y$B4emdj5HmzQs>lGdVhnPoz`%nxtNMO$ zWc40P9e>M~{M3f@%w-ezguzu&C$qbsqkIiVj8ACYmVf7oP{Sf8aJL$B*~_c~&~0H_ zV9IA#jSsa=0QH~t^Bhf57H3O;kCMr6L<-T9a@^^j3HK7&^j}HmG+JQIAUPP%&|W@I z7!kQQ@z!~09UHMe*bn&SLsjH=c%Ak7CP9o6A1@|*uZ!O^$)bwB9Q7Zwo+cKp*VQM@ z;i!be(cnJAhI=Ca0H(59O;&3rhleJ7@KYz}$x7M9Un&ANRThIk;6F&N0pi~;%RE9Y zXd4*tJ*9LxWTmDMz|mnFFduIkI_oZgKUzEPaonmYV==a&B|3B55h%_wybDb`ANXii zBRc!;oakvz&e2z+YdJ1MtVnqy?0V+!QiPOH(?kSL%s?oCk-AKsKLVD?=MJt6VX^O8d8YG^6NskLxO|S5z(QTF*w?}IB~lBQ=1~$P%InC%#vj2 zuHjwHYx8)leyp95z|vIH=PXFm6FUUYuUUs|Ha3mct_>M-R~$yp1uooYvY z^H6AB#>a>G{VJ_j9Nx^XesR9{d>}Mo+?BgF0QJ03e#zD+Sup}Ckc|!EWw$lwmIM* zaZoYQE#k2pLgY*E8T>es-54A4+-I-1FuwB#COq>}R4f^y(R zKHG2mS=yw^?3%d?*I`o{wFDoYLb}01FE=iRssG3 zBS~^Py{qDuuuGB4ECZQ1Y_ikPwt6vj+4PfVoj>%B1za;up6d8xf5qFzYy1&?KR7}6AP=@nJzlsQ^t@H8jF1P2&DNB06K%;r}HByT8^HAt3lo;tMa_Ia;*QJIlo zXM-*$W}fs$09_0)JDO$q8lJ8xF#wyBNGr2tmWIT&$wel^B^5DF^~TJL{8Q&2q6Ba) z@;y^N4>&Lzqn6iuwIzxUHzJi5%*pU+U14~NtRqz zyHqgn40+K0?_6D-VB*NuB7xi-)yd?pRK2J?NYrA878X7QG4PxAgKxC2-6nA`=q@AK z=)spBAi&qP#To3dh9@2bh+!slOd&|w#Bsc4*<4l=P3Mb%o#t1Zq^XXbUQPfMvfF7l zUG3;xPrRaumj(W~IIq0%5!3yi0qB+6tUu)DoCuOEau^fg!P>Sg7d{(CubK$a=Bh5` zEGgj1VZtUBeglK`9F`;=0+Lx!=SG~x>QIA#Y~{|J$P7iWysUv5(hMdE6|k|Naa86- z<(zEbKnx}?HR_M|;o9OmxS(4Sd9a>cV_on{P?f^E=f9uo^H2vrOSk;~aa-KwCSr%T z#p9DsLjbXpto{5>G5xajI!!&eAs@nJU+8?RnK|@`s-q;po&>HP*`pU@H=-5v)?^ij zlBrBHirvG5k*&6U*Qte=j=6wwO_DH^NRMH@cYH`hMb2i`L5CQdywhPwImf|{jH`AE zk*D(KE~aWECF6(wjXw%A>lRFq&M!|t-hcrC8K-)1)zk6JEj$m1j)r41W|2w*Wt{EFTvjt9g{$wj^cuVki$E-zPo!z| z@li_nh6=NK#yVZn5j*I|5tA{3?-b*MfY{vBO7kr8$5R5y3v<90v$z8WH|WyxUMhcBktkkYW$=w@_Z9{<~c5a(*ll;!=)`@xvc;@ z{&R81j9|UX6_H-g8Rf8)JK1HyQ3hFzxCixJXq-1k$)^cfMo!ZwPYi$V1Sq^OYW$nr zE)GzuASGJdG~JFKCW=8j3^;G^2Qk==2Z-NNOyM2` zF}vcH?b)Y?LC7~>6{w`U0Ca~UvMU0(E*2(fiCJOU{$`YxrMUi7%|A2u145zAEqB%Fk@T0lN^~-ePDN!w=3XTF`rW9rcBf13Gv}Y z`e6KlNFyw<$R$?W?(%_wv(( zK2vzkGOy64mL`xhK~9^rPQKiV z;mAV3B(DCo`^JJ?xMmc7e^T;oU#%B&W`A1aS+)rdse`R;f@Q=KH8P(c?a!Rdj}I1O zGc*^=t|YF|>iNg9-W10K?#i#lz=z?Y>?odTh6@NjphhLvJV9K6px*M*Qs8;=MU#X3^;CZD`y(e$t~dUwGB$*%_HO11%vxqg=f z3=6zx{y<62&Dq`6BZZADGfpMl+CzF)jdtK^`HpeW<>FzvlPn}CV0s(Z_k40DH1>Rmk!8EmfPigPeSk!q%)M17VA3V(S6OU>;w zbJbh)+60F9zEOv%6z`cQawH{GlOE#%{`Fv{N)%2!WJ`fVS|R( zj(OG@o0&y4U-iLxePensZD+vTQ6z1rt;xd%Nx*re#+JMB=Gxy0$J1LN02#$bkRCJ7 zIDwkwv#L88I;>BLt#6<4;luRVb{(EJI2RAK-P}lYEfO`wk3rM0!xm46j4+^nEliBf zT!#vUswx%^ybpz52C1)~GjtK*Q!WtCmdQ0a1s)aDaH|RAlYH_yC^B&NJhx(K6L=L# zTrfaG+g%xcbJlj)4^bcDp3FF6Q?c?(j~Hw^9Mk3BeE7YczkE(XjF|)SbHbJt#s})c z;IN2i)gTuuXUL45EZTD-!>gHFJ5+gm6`lzbxY6%`5DZC?-Twfv_~0#j+=*vPQZnT5 z2o6HD#yfUpxzk56o^FuO~GWick%pYL18xg^o|uTV0L3)7atrraOO-eeT6*>kSArr zFWp#XnkmClav+|BXc{YnHG^g`y&WSWQRM1(R}e+Re8&Tb-AP4PBXSwm9(S7M4$&K> zIH`$Cu1(O{>gZ9N81b7p7$=D7j?td#w!@H!3!~$b7dxc$`kV_ey)R6oPxSKGO{v*xd zj{%tgR@~gcI4@HtZ<1qSsJ$fusxYd$uEU+D6m~P6EKRp=k620z#)`Z}F-~|+o@ge> zY*;#6ylB+@pdg2hdde2e+W!ET?d?VG1BCv;WqPPPFvk71 z?BG}urG4c80L|-^voEZ>WWI#TIMVb%yJ9jG31N>Knb{wlKb~{Wxe`osNZk<_I+uVA zHUJ#q_6&`399SXpi47PvC2kCHS{6eOpN+QJ6$Q0@4XKzB$s|`-gq_kuIYQX^Gvc8d zz}arIha4?tY0w-eNYGx64A2P5fDK%8NW2}vi?)plMr}*Sh_PIKscLIS00EmxF}JT@ z*UHzZ&uj{iyG?3fcGq^;X;mcd!zw0X;LD?g&7v1C@XYeeccx0Ucsf}ImnKO%2PQHe z+1Ye`5&5O)iBDWK%~th>fj*3?=J@LZ zVUmQSBxiYp0GFebCsnPFiHHV5XOgj?a$wGU zzDq94HfQ_C@UYkIxMM3LjJ=8(;g*otGa3yAjZPfbVH~$WWMud; z&$B`E29AH}#l!7&jZ6}|Oq>Q+vvC+nNZnJ-%%NY(4R!55EV&DooMde`ZRZbWEZoub z{5(CR)FhAE9w6|$L($GrnN$66YPe1wufwh7s={s)V|Q|ES1jCh>|8#E;FsS-Gj9$c4s8Ps;Y|*R;UoIJjzXl z#~z@Gz4W@^PzvjSv9RuN_5(u>vhkO`HF(e{d3Q8}>P?lWctfM$7e`?X@b-xrLzkHv zi@%Ok+hL*`ip+tA^PU!=JWGaXRgOnuan+vVhJFm!3t3omy10QyW&0D%@P@QieMxJm z`{9pZN`m@5zpKbn+G281a$v^(W)z-5VRI?sT?E%KUwVdyG4fw$2*inM*P&`YQD+C= zDTH8gdWJrC!7wz<%?xUEa`9L};8!HXh-@{S+&WSrEUwt?4ht1z9f+nLUJ7k7L_?xU zC0xt}Z=ZWiV-$5pJLvn!}7P#$%A}BV1St zeyu1XHg`~5JYQ%!8V?IWCl)L;j*;a%=FU^} zfa>sii}at>k{j*`7v|3x=Z1Yn;j~c^&(7{c|Rf%`j;vA-*=`7?rxT z->B0b-W`aw$t-9^BQQBUbXyPz%iy$24->$pnr{U`SYVPTIPzfvzxuP{qz6sQw0AAO zG3nUys4s2M%^_nneKl_poap8Z6GVd;9o$YT&M>*mz5)viAY7R*vT|4~0Ua_{P~c4^ zpGaNIc7V#@ESYw>j6qDu^&Di=IzfhG)*W_n3fYhui&Em_WxF}_9c5Hmv(Y=|(3AfF z?oW;}z8->(s@4+c9%Cm7l+S*L<{HQAnF@a7jc7;ruTxV%n9QUfrexF(Es$6Ho= z1hB9pcu?()ZelJU9xO4_lx>-Uk|L8kWQO=GCLK6jLPmPnXOs@E4NLz3Nb>Hm@hQjF z?^tVvsMcwZUE_mh!#vU5xA^%l)B(;LA_9 zF&o~1Z>e1SF7FME{{XVtbkb+13=OHH?c#FsMVyyxcKcc5mY)IQW2)l}oEC)EWad0LzDs&;I5!CyHPe{=@@F~b zyfgbF@aFe2Gi_0k(00gi#Gjjs=3{62a})`^rLyo~l-6~}av*L{)COQ;raVhwkOtJR zPn6<`O4x^3y&rV*gU(YGxf2hWA@3Cu3Ty~Mt)GCMk2@+rW6AJJJ#p&gA)Ta$aQ8Ym zDywMH7|7iE-&WeC?_1Z#$46Iz_ii>fid7(eIi%Ljp1>&f?CXR~hd(7d8M?M{Np;6S zRd|L!?~CA-K?d2>4%=rD_*;G95)&>u?+lBoZe({oV2gr$S?2cpnP!YzBRCPLgB_Mc zi?O(H(9=IaNUVtKwVgw9b|!E&oFc>lFUOh&$mpW0CW*I1 zu4Y2EbE{>ic? zW=zL|q8h*4)vYjyN~lWs^-yf$F+dEth|+p)2vp2z-tCtf%+2m#om^pxjOYdAKw0gA z!m@;86A%MQXO7yWmji+d1!BcRxI&e%b#6@mh> zQl-3L*|x%+Jfbs`1n0;`4iS>zVbXSRc54u}!M00w^y2NPDP;Nvd8m&aWB0>P-`$$!{Mn{|AAvw^Hab{he#>qjD%;^U0t5{uk8B0?gm#`4j`9#o4 zDlAsv;DC%XdU2+S^|j`?ZLEqCND3u{qlnX7Uh*v&beB#H*vhPzwBNgqJV9Y0Lk8GV zcO`~69>vJeof#iZL!SuyFmRsAG|jB~669Y=CCdCgd6k@Stj<1PB|PS0qj$S zUG?^8kw=3ce7~II&qGWwVH?@mtIQZe&w$}&Rzz`*AUGJ@6RcAE%ygg3NwTB*E1E*} z<>-Y)bk7IaNYM0r$+k^$9t3s8x!;aZgeD7-4xe)-eKV9*vnue$QhrLrZ%$U8DqYu zdgPo8HTrEPAO1l{7Z)Es5Nqs)l{uPYFKTAjS2NaGfiO;!T^r*kfLw(Ev-G8$vBolNj&1pfdtuu`%8>5UTvH(@ld~caO2p2}y(FI`WCTY(Ot2M0@!+;@p94cC4Czoj6&6fTb`(IODnp%nEcG~R z-odAWy#r=3n5EDPz;KV|M|mKdNhqLN3O}%uQ%@-6a!%z4*+lrG`ixX8*tZgX(a{cg z=CR|u-ucxCs~p1{^=60)pklyINc~k|>01Gbb$AxE6zySdeub=@tvCvRfT}7h*6I{m zw@;Oi(#<$op={3aRP`O_m3TB*+5;&_lHneq9*f@p z09NdI%z6MyhFAPR+~>|Bg6~Br0BxQXHKq*z0ErfiwNWqy1`&dmE0{};KHyI5n)rHM z%;QCT49{lKhgFw52}hMl@sPG);atX*MlQx{-nl5&odQfCChB*S0nLS}TiX8sf!%Y( zeL358FWuV{Pcs#CN7i&q^GxzRD)CA{!6VneD#XFAQPco)BMojT)aG}~ylW{JYrZGF zsy#h%-2I56Sr>Z9Ys80#PfP^Jol46v+c+zB1NHKF{^NKHTc z047M;j-&e5To`k{DS_e+XYg}y0Dxj$tid{RbI~#pvb)oK5f@-7udRCbJcuc&n0snJ0BX%`8d!3rh6kf1^IW)^D!7p5FVDF5Ti!*jy9r>W`Jq7x2tb!e`Tq|0hkro*DB47+AziwIIYmOMMf+@`CK@Zc;KNC5|^0Ie^ z@Z!C!G8Q)3lIMTM3$VY9{q3(azGnCa0QKcI#y@&$Ggd7-Lfnsz6ceV(1B-Z`V%5Nw zw~NxVmh1_@FLo9V4nI7{D`U{bOBc3Yx^W9R=(I8P;dI1}puqn1fyYB08XyB_^f|q3 zfOc;#KywqxFv1^{X$qT&$$_6`VFh#2h1J&tK7xcD9+%=-WkZG}?~j$P2{3%Xe4Zhj z&qH}#mJZNxK;WbMCOY?EgJfmUEjx?ZIlAwVB;Uz9n{b- zdC=NZ#(0I=F>@m?7W_b8vYj%Ck-T4&j#$p~)c9v4i2WzjldP(Ac{mA3%>Mw#J%a#L z@s($R0!)TFOx$6rY`s&aEGy$K#39{bNBs9UnOV;=^-b0Z70Wm+_=L-ncM^zHyiZ|y zE)sMC1&+ZGZf#!3_7Z6j*(f)ax|N2yjHHzQJ}ZMw@)dWRaXsQ883X zqBf;WROS3!DgzE3^jcW7T)#hqiSu#H;py#(w-V6}GDelGK87t~{{XD67%}_)9u@)s z13=8Ip%)xE{q|aizVKo(j|`r(Y5ZGYUGDgPi%}k5m}Kpvi-^C=0j`_#%tWLT%+@a3 zv>c$K6K2i~1f53}(U+q@AnKm{;$xeXY8@{KNzlBMO;bE21^*j>6{nfi|buM)J(3%54A`HiXMQlY?hb=Szy)cT%*^@NyBo2=698wzCt9l&sDj)tQijbhm|b znCn3ep^3R_USJBDCxUOgZ&QamhkP|dRmQK?BUr@z_>!<0$Cs9sp#F zWzK+bm=}v?f7Bd*$(Nr4@SrG&ko&w`nQ`=69qF;do$-_hkI;aFFz+WTTF4p_9^8$^qhcS#2I2lZaB|96F zPMQv~RIV~9%F{89eB1gT_sr&6G}>}uAH8vifvicBnlmqR#uj`vjD>%!eDI|J95mh0dK`Fc;N5ZHCWXQpaQdLkEfYNpkH%7 z{v8?NAN=nw&6pBABk<(dS}f_*X*hIQ47gr`&&shgUh`}<>Ll?gDXTxDrNxU9qqKsV|2BnCyb7*9}JIO%tO1tm5#_^OXRRB z>xMSlMm3Ir3jmHYzZIY1N9BZlxdt925)&FY602_mNJ+tYm)?dFt~iB};CQrDo#in& zEMCYSwAsfdI5=qA@MME>Lcqx4!%?W18S-wQ8+n&}6WwDEab0K}+mCTY6HPbMi4w5l zzI9pZ=SwGnlQ$fztqkA+((F!}nUOkW%)C7TBE!S8Okup3WMiO`!zE+q$1;lmarjRC zIvL`=%4cHRSW##OUR9+GWAt_pazy2l&{-$%h(#dm4q0w;b!^V>3Ks_LyMJ&o(4@g` zQsx#^E@CTUS0*X%2wq~*M@d>yApr2e znIpI^Bx5yVIOfs+iaM9C$%wYR<^_JRCsF1z+K6(@0DVd&}&%VD;IRnHeCWoi>9ux$@ zY#4iR;=gBN2`tqC!-u%mj$DW>Pb4)mSkFtHaak@}>t6%wZSWq=* zIYf_!HMKhmtevjdBpJoalgg*9#nwSjgUVk$591Lz^Hs`qb5OT{6_*Gb9TXYjX?{ z+oVL2yG82Qa$ck7sH!8gM9y@>GT$NF;|LQxPvuh)A_CR>b;*hui=Oe(`W`rGn=%Zb zeukYL`W%Q8^1wZ1YAUCe3mq(unonE}Otdx`8VGB zyhT6?MtVlq6Bm3ZodsrN%ONab7n-v@HZ?@V+jktt(q*yxzhKvVB4&|o31#(ZQ*t^~4Z*s?)`un&xc;bcH!aIq{R{y}AR#yOprtBAl!m9Yn{t&U>5 zB?di*jJV*wINKanc{)4E8>TN7b3dR~WQQ7ZLxkWq1F|MKFkfOMBsu43ycl-z>tQ4A zY*fu?C_e{{{Rc$3e0!xXkdKj=OcaDpC62BMRkr@jdnolM}Vi< zGOfHK(1Ve;L;IZ02Li_WKt7CrzEG=$cznBJWMeo2u-d8%$_6)vZ!=h4Zjt^1^@j(= zSP_RngG@03ITDC0@H3p8giP|h$T-;aC3`1(ID`&pPzB#R=v?!?Ee}J}*ss*!)_eq2 zGIqF^5bS@Nunb1unv%k@1ltac_U z0nA8`Is(5dT{K=ylngkfZFC;E-izWMNUNvNa|ky=lL!`c9;%Qya2UZ1!sf5MLZHQ9 zQHXl4*L=3!7>tgeJAQIVwQIUH$`&;wuMkQCTTb>qrlG`=Q8^@9S|j)1-=vs)0$e{? z_~tPxP1_3-2zTk=xnrEVL@S0dJm%pwaG5cC;P6M)ze9)^IH-xf={bvOCD<7Pe&cNA z5`vULCxBY9u~=ilH8R85V?}W5{oqj`>{|)9l3?Z!04xBdU?sZ{J>}TZ=oakD z(A0Ae3p&m@$6D=+Sha!zmj#kT4CJQ}5P_zMT%gb6z6it^Fy*H)qxv|A)T6LbxTuli zw^JU>HR^@Pl}sb-WLgLf&7{ZVEI$RODMO5P;W&yarj_>_#tX+h1n%Lq@N|T5@Fy`K zT8x2Vl#+CgffaDcg)G)EfC*4`dmOoXH4LaFg6;_Iw^d-GgT`XgK&pAm`oMZ#2cs4h7iCf2(#(Q^de~~BL)h!eQ-@CaWJu$wvKUo=l;XeLVmy3 z24x$s{@TpV@n*pb&A4inPcC`Ay{$yDju$VkW9`j7Kj412MtT1L9Z~Yz#?eg_U{odf z201_q(posR3b~z}v6G_8GN@w=jLCzSze2f&PiTlMam>1Cs1Z69VjYM9#doW;J7~^Y z&zKI{a~_c(9)#e4iL$nsL61*aID=gz&Bpzh$0@+38Z=MI80ag3veU3xad&i@?(z)c zYd}V8{Ty&xZf>krlxpGJ!A>8Et#f(@c`p$)GKh!cqmSTm$8c<2fS_mSoTDounS6N7 z5Xq&0TZT(#?UIuag~4B;Z5-(PZI^_`##l1W^AE0M`J=cR&unoshm;5tnrt|cm3XO} zu^~ZIrtCbXH^$L`mVe-#o6}svzeac8q0hguB`sd~t=UJ(#EldM-k0ZK#(1zT5}+6< z0(ZO#05_`n^OJ2vdFpu!YvR83+^$IWG*;wz12$4T=`nYxh5k-F~s^ zZQqFf=L;~DsL&;Pyu0>qSEy2BzIyy{^~CJfu<2C(@O@@97QN5j}^{ig!d7;OvD2>TXNvS z$+m9m2d?pcc?f-5qS8HYNqFc53lC8Qxt%!0FEYTeEyP5k$BH-V;6x|<)`6}bp~b@J zMFBI$3YI?Td#)J4rKcwoY?9?R;C(u-9u(pOFmQ4qzW3tr?pXBbwZ>VG4Lle%^C%5y zA$_wrv8IHjGfv>94f$+3`y^@YnCS?swV<>BA{GgEi1%l0bxhzqrdMhTf-0vBBbPyq<1klB4*2;&S=DljP=E4%AN zusV6AbB+Tm><_`4!nsUj8H?oX1lTH6<+bjj`JQeoXl3}sJZTjF0E1Py0Eh@uBbxv` zZR>y|6n*`xKcLPQc92>r(3k5LClIE(HVdrnKWgSZkVr=4Oq~mskfG5+K%=rWqCOem z$c7>CfwR9n2%A!QAhU03F$w7VaCG?}#yby$;nFTeh*!T(4pB#EGe%8TR3e z4h9bApPV`SRxTA!5AIGdPN{_~15uwx`BIcrNaolFu@`T#WA+c#`c zMYEQDQLSA!be?7Na5?2cZbEv(@Di7!s0VbcgQqc4*heJHAeil*7bL$5`??8mBKOQP z!W`B+j9ZaBa06|{;k%GyNpqZXKxG6wDLVQlcu|fM(S#fnP2zY2@iJ$ z0}lgnoadEb1cu$QjlfU7B}KsszVA9Xxxnu8{S4PSp~B$5F~1izf&8$;a>6C6u57G` zl|fIl@Y}_PLZTiNIXAo|mTbhq3G;WC^pad8_bcxy-AuUQ>?qzaVqcu%HT@0#z7MvvcnQa9X zX?D%W1&!oRWqGjW-gm+W!62X%7#0)307DFJIb%n8%zk^vU-6cgh|~T_pU!rfGKrdu;Kn{p)(OYaX?M9EK+fV!i zc~b2E04(^OLMYhC0?J=~3V^KLZsH)RP(`zL-n{{R8iplh&=7m1&`1A-WjnH^(AJC+VFABhaUTOiuwKdz+ zbuJf`i$RRmARTOsV|bq%>^6~q+36!h8Z3P(f&uaq@U-@41i9}HuME&h82yJPzdrD< zTaFMb%#<|F_=^}^?CF$#I5kQX=6aEn;~YwIxTYE57_q;cy{rIsb+~rD<2fxoYn5LF z#%qp-XtKmz!qvFb#$oxH%aIF0V9sztS3$_^F#?XGU=r7!4!EtL`$dB1ao}Jh65N=3 z6N0J^rPQgSxVg*0s8a{!uljE16oUv1Si~3BaP`a<5SIS{=-cwg? zjxGTO3+hx2s{4p)1j`PJh*LPCF$cSKCgH4wIcV%o`8eLJGA^;CMW0N79c0Igz@ACY zfG7y)`D1|6Ktr;_kH5T@TLlJ!Uy#(_9q;IEUdo&`!ypTn3Ntu9Gx0LC%xv4JeV#Wl zDA*QO(D>l>`h>W^BxLRJIAQkijsZAL6;@nk{ptd?>!r-cPcX_NgNw=5J@(FJM%ZZI z@uQD+K1)-xAKTsk0Gt+zik9E;GWp>bcobE`yc4{c>yo53OIOIN4v3le63`69z!Uev zzRubcruYxfFiWO4Dkhk2Hz$1Ec4OaNf-&1XVF^nX5geEgmt4lL9mi*lBdqmQl%J|d zBR`-W{qRG#1f^D+%lXGbs<*%awi0)fh%_hiS|ZGud~psLV$)GJ80_ma_{uRu6KL(p zz{w|JkYsu>fb&clEf!(W)u>4ES&UU-SjqgwcguDJVMuKl0JvPdlTsqRO@%~4#N#~d zML~N`^0Q)W!kIe*Fq&1lSoJ?3?sn|4e1NK@nOHAH`tw)9WHQ3^2y~$8OY|h2s&=P= zc8}S{RJMgW+F|yX;}m4zm6BhgBzLcK;HkSqQ7xsnk6FWQ&ncS#k(M*Aj9Ms#QGaZq}Ak3Z=2I-&@Cb5$O zJVDY#B2kK+OpIcMwTKWiGzgT3B{*3N3!nGMXn4k`a8wtx9LAaBtG3!$o7o-b5Hc1p z7~tXDM_}Gy7$xMsfYSc}5JGz)qXtc4@liST{6^IujDAc!h{!C|&r6_nmWK?5SP{BD z%IHpE1Nr(yms4Ng0(WNRCa~`D=e#}9GC(Fni_tD-0PqPSv?X2k+Hi1G$l>uVPN*uO zaVb6N5#4ct9 zqUf#qa%51EqULsV&M2hDI#Ad&-}-UXpGQc(H>ApNW8E>EhpbB8zBxji8rTu6B?S6- z{1%cHUv*zo-Vuahsk%(@G4BKAM~GvgaWZ9G^`=rRdeD0>_HaGmvzduu))(AxokTU= z&^q`#;%-eO^6h=W0xzP0YuUZmvieO_zxD7Ug* zVGh0HEKDJKri7|7(a$b4ssiX&#xoG#D;VSfdINHGNyi7euV6PUWZT&|&Usrn&h99j zwp-GoLyujYlZuTy`)Qrc1_gf-FpZR#i-zvE}51S_56WA;cM& z-(UOi-8^PK&S8p;-4OAJPkrT~jB`ODw4>u(0y;YtjO!zC%>u{REh&R!$-G00aUm0K zt}B|+H^zf!3e8ONGQS)kK_F+A0AjJQ;HXRh7U=GA?aui`WP_8r5YjJv-#J46%?Ruaedj`dHA{f8B- zEV!=b{#Kekc}Vy^i{@xY7j-|$p&A)8^l0HZ7Wxq?euB6uaKkg6p)8xa!37I|lH%>p z`ZE>-lE9_Tk|=a4L!E}c7`AeJXB{%ph){7c%0eUzS}Xqm{Gtmp!lPU{7>0~dh4fx@ zwPmTfq;1F}Jv7cMiIwf=vfjw6tNgS!I7E>k&9+3%w+#)+h?rDin;9&-#9 z3iYtL2(TC;^2yG}lnq>wDxG5=?VRitBs6cdU~ut<<|7sR_nI}sN#oHYqHLT3T2qeP ztJ+7z$-!)P27(`m0ju=z9D#L2z=k(ZwG}bT?G*faj6Z1+xhJ zqwxTGv&D4qicN|v9|bu=j~$Gp1BwIzv$A|R1gE%LqG$!2jCT-IftStp*uPJJiM*A6q;&$Z}%Fw;SVo~kPOw1nl@yhGA3~G!rGuIs2 zl%o>>GH`p$oSj6@v^ZGTuj&tJ9J{Y6KQk?_9U>6DE|bjHtZ~My5c<=x)Z%Y|&iK;% z0giiQ`@ofzZ=sPvPVwgflAzzOVSx5ucqxQJDuSVbDwXdLufmj9)Wr(*jd4m`jMnmi z%&Tt>W}(}ah%nx9lZr2*72231%mB#J5q=K_ERNG3xHaphiiOHL0A29rOfar^Mk5JW zZy?nOfH|otE>SDfkaHF4tX89MK*>1dpCQf{lkUjlinkW2EsJkI*GKMTU3r<<@)h;F z;g~@ky~CG78zk#43aT6Nz&0lMfE&?xI?iAVy+c6R-MiW81KmxzC6!*>aS@nJQ)|&K zl4eYTgGNLpG_4YzoCxqG>IDP>UIB(wa^(-Dd$|})H3r<#7h+aQ1DZOE7Hh-)+)>=F{#t3Kx5;HfY~!P z#9JUj)hQnKla=^|k80FWPTjdSdh$cQ=|wX=&L|QDU>7ek{{YjjbSnpMVYZ#pygNtA z8NCe!zFq=0QZq^nU7!MRX6vry)J(CK0k;bU9q`RprNT`i4)vg>0LWwP?Z%E<=f54( zpN>^bvP$Xm7Bw@M0usPQ3sABkLy166_Rv|7{vR>94u228?OwE;Pe z5y5}*p8o(wIfVpZ8PIW=Tg(m!CL*6^03+Y?l8&|8ZUqn@-5e`4DSMjg1b9K31?A4P zMxFGth#y!*U@XZelOqsVO_C<|Hq6k+o}MSmDbVPXzm6+z%O6_TOlId?14;RwhqElR zc=_IO&2n)u3E6I9%fir&j19M#<~_LuJ)AZY8qXm#-ZU)SeZ#!?$eQflmk*p}54CII ziQ(GFjT2d4XDhj~55NxG@O#*GlmJxu9M{Xs?`@`cNX`b!-gtOA{{ZlGw9L=9o2Zme zV_4Y3Pn-h>xEbyI&$ocl#7i0R%x!Y@myUSDGD;uR{o#NCu>#|I;pcpJc@RO;r%ubS zoB>M9tr@#5Ml~JrXVS_k0-?}v<;g~94%?EIM>Bv4kJ7}x!Ts-!6O=xw(Td#fy1WvM z%X;7p*WUqR2`R)zOoAU7cyqZ<%#jm-18MfL0KK?g0gXk2%v!I=5CfcX70v{NAqAb~ zPp&PGX!?)PyS{Lv+~R6ngwYPpP;ifHU|@CFmOB|NAT5fpI7h@(r*ubED9Ha}!1#_j=^@B~P&+7D!y)d$xw_Gs24AUI$u=QZsPv2~1#jw%|4<4_Y>LgFSK%sL6$6sM#Ledm$Vgf`}k7GrRK4qz-nV4~na*ar`?C zGj`5;z06tLwGrYBL}5%P(MfiUSRdK|-8nmljFgQH$>_ZjpoGvmgtJl0T%QsSrzcGW zG0}dvjWoJfVBY}0Wpj$EoeWMj^D+l<31IvigC+Jj&X^s>?wm%N9s;)!#O3l};nSS) z2{wxNCSXmPoQ9$>UZ4x-7BrSTQ6NGjNasj4c!Nt;pS0L;pts+YNDyS@*^U|i z0MvaMTpv-EA*T5mYfC!Ir-^1EX{a~|m8JMFPT?5NgTcu4<4_XUdYfiRpIoS8Qx{eA zhB)45IAV0s3WjIiCo{AN;(MHmu&)G&Wl2LH;ivn;^d*2k3QcS0kFv&k2K3UsZR<4o zM_VC^fc;6yA*X)%2#NF>%)BaWsDnDbks+^+EKoJxT7H(9#|)i@d_~2x<3Z6>BOqwZN*3H>! z3xc+~)3Id-q23HPwInY^b&$w<xG&IgQ=mT(Xq)y{@$vuZJgb;RY6uo$U_ ztRPZHX*=NShWEg57TyG1Z`TQ?_3ES&^C^(ZXlcz#O25G4{{SzSH~}G}*hq#&8x|rF zCNEY>go$?eUMy&!vodB`7WKC;rM<=*8)Pu;pD4&^kGdl!1&uf?tyFwxELNGo!tpZ2 zcC`sOaQ5L=<}yONdfN>Q&Nz?;SyL~=4wvJVsX~Bu4eCvhjm8KZ4YORem;GZ-b?zQU zis7B(%FRuYbWfr;g)s0Aeo%?2lkgomT!zJkJ_b=3)r-W=;-oh+t!Mao0cs;Hxb0)% z#hg)L%b*bt*lpyds0-*bl?r;|V}SP>MXj5HNuD?sWk7a;oCZQ6!bPh30U7(6f=o?s+4l2$6U_Q*C4h!qppeS~^J7eN76sJtSX zm8sOc`CmOG9~cnEgTix`xi`98wuaXNg&Wp{Cy+KCCMr@hxd2;4MZOH|Ic`1DZDb)w zCN_A`We0;SBI**%AUSfT9^YJsvqtPXS4|(1p+AObLm9)U@EaI*qpoB|Aw+NGd? z?zj4iZn47MA&m-MuJNz$7v6KDW=y7}8St>gJJ#d<$I7t0urotrL89vY5EJ*%lo)Bo z{{Wo#Pyi#(2>$>Ec*V{V2)EgYs9Q-Qlt}!LRkfM_0Km%0KKUCqY*Pu!iV3d{a!P!*-O;wAJP;?n%C5(W$qe}JOUnFP#Z#X-g%KUX zlQAgBykMA2K14>UArqO5SPj%u^`H8O3W(Zc{{S=$(R?EbZ^`(iGDQI!IT`OPfNo*+ zJ7#&uJ-w0ZXfvCUk1C3Kl8{M7fUD>r-hM9B>rd>G#B+Bu39frYxbgAMZPL1uV#62%lrR>ikAYYC99bX^oqd z^bn3wGvmVZ=x;L|-NWN~;wvjb!I02#6>^6bZ5C^34hOAn1R;gXBm zN=xD3G)tT&icqnq&`Sk)bSEjMEYQk5H=*-}ilfn=h+oGJggH^W$+kyZ=8bw&0;I@D z$Hz4puvftBmexd^sksP;#zpuVo8T1Sk@^U$1~@|1Gy=hlpDl4Kkpp9#i?U}tp^`P2 z&4~k~-!XwyRe@{(p@4QWU9W^dLYD$yyf(-Cd8^&o?w^9-44{Xvo`m_?#ilvtcoBI; zpB!<_{{X?TQi3e};(ib<#?O$;Y-sV40#T?TaK9wOz5$a6HWKiTa^pTc!;}UjP|$v- zUA8HWVROZ3K`NYGT*HmdNE%FQyL7)2F_)~j1`Jfg0Zeoz`{bS21n=mVj(v6j2uwoO zOKx;SQ&UDK8`A3*oX3LIy7nLQ+s$YSgs(;~G1aFAMNEIaN7QFNQbZ)QzE{Tj96^_u zCI=lgdE6WgALf_Vt~fAR(9NDqW&YQ`I&ch(s`(Yx`IVLnn95HM-R$6SOKIH8GzVYj zg<9r`k-&AATf+mWj0_$7W+dLY<6`JSCHEX!r+k+YO)ruk6fiDGsX)^$Gko8AEqFab zh6Q%cU=Cvk^mX4>+Zr%y)E3$YPILSDaSlSwS1xf(hxQpq6F|eDCX_v<(}sZ>t4-vq zMU56VFvW#3!A4XvJlY_G=9^*3rKcYUOrcbs--V3cIc`*>&B2Oo%g!EHQe`j_yFZ*V zZnXtK%Vl$u92f=}P+e^k=#K;`m=oh?RL4;ZiqTQhJj zV++1bk30VWIxZItCwlJ2Hsd)74|Dr>Y+pQcM1)ou++<<3ZCb7JYM{dA7JQrl4rGYw zL$IF$lJKU9)~{m6!keSTBvcN+)L88H%u)lb0!kzx5(a(>!yt`kR7cpX9BFt~pIGvl z#G_spaNknHsK4_r$o!j$ibTKkOWk_4%h8(VEY#qi%_EUVFL7g55!9AUJ>r!JSSfh= zk}{(h%UluE+X!NPll)T2Bb3f(JDwh{B78b(D)XY1an`QGFNbkF3G9R7!B`=iAY=hq zeczCc{t(Yfok}%BuF|2r4YT1i=PRzV_#fG0&qf?|Dc1<1$2O_B*Wj z#8Pl>NaS{{nMPAHd~Zbg@=HnT4@X>4V)zL%CjOMeidh%aUg1t*!zs;RB2e(?LSEcQ z58FB?5^RYEcJlEcZPMYB9|2AAM@nSPYX>y>yeWYd{GPSGmgAb39}Nyy(W}QO#RLod zRQ~{bz;Ap zQZcwk*K>w1X{S`hFQbP7^Hi-YaLf9fGLg4X8Byg7iKiIw;0ql^C>E8hxRn(~0Lhv* zYe0$K6RiOETH0tl+)ubLjWtj1U^%WGl7!=L%lpOW4(VyM>JFu+&EdFnU8aP10|7MT%vQX z{>NNz`e*EPVY2~iJH+Ny=t8On3ZpV%I(c~dw&wll;K(l-Of{l_wk`&I?wLwkJTBja&bX;`v5z{g)VTMou;W8=|m zE3e;hDv$x|o( zjDH1?IZ^3W8Nk17*BwTOvnY4aZ^pRS;QMJb(}Et{3*fLi1qwnBc;m~!Mu6q0@12~j zqlHABT^|mo6&a_+8twkPI7SQ)g{RG1nE7 za|Qx|JtFbTGP%4@{A#ZacK#}{4=x%Ev6|ShS>t) zG$4hi1g~4B0%e*(b%M2k2US3dE;TWS4X)NG&61q}&nyyy<`+qq;gB8P^jk-#?y@15 zhweJ`ccHrrx=t-tSzzERgBJQY*Di?o*zxX(uK9m9d1CefpZ%@_ijg+t^k31|GP%s? z^^#m0*3%o|Q#-`=WfIsNv$xBz?3~DRW*D4335J4On zQg-XS2scH^{sD^NVK{&^%tWEfwlm*c2k}N%Yy<3K@gE`~a9x8YA0{PV)Qqog;MPHx zg%J}#Tv2@{aO(2bWV59vb3nARoN3qi4{f|+rya#0{{YkBl0Ss?&=TMklgy{nr;)Cb5iI8)b zbPK?bwdsaZ==MfQ9i5mYDtI`7ww@Oo9Jxg%^mGfR=e$g(m}Q3(E|fcqd0wUo5jCEx zrOSn<#;3W(<+`$vwc4;xi+Sb;r6l|z#ml?UnKJKW{2xc(FDtR}&xm=C_lV0^VrhXf zm=9c6yr!98_EWz90D}&iSKGTf)#1Hgu#;lx4)dN|-U`{czup&I7zXF@wfeA&Y}MO& zxd*iR=GAU2)XWUrxu*}=0Z4w0yUE3~t|zRai?*41duc&<%^-t0j3JEHNa!9y^-DB! z;iHYs}(wNy3!=O#=e%zzQ&htTFQ3{DR8IjGTy#@*c$}jE=jgU_J&nSqLX$v_)dNlV4Nj%A#t*`>lWCreN z^J}Os7{eP&1rZZew+(FS@RGK&Oj=3gydcxdgkzXcWYO8i2Dn70z|0Jv!-Hxn8x=q- z-b<78A0&Za0LS~^t|T1Fp}`rQ@$~g#0~yx1O2%@hM;JwxqK677iSbS*lH3Xf-#d@j zo8SY0ap3n%d{ihvYH1dO!-U#iMFk2IV@f)u)whfvUx)FjdS>M@#HEJlHxT$af1G-2 zQpDj6CSDE1b>(w(*~J%u2F_8IW%1$B(SA=4lQ4~Ze|Uxg921(P*4K`2jUq)v#l6R| z<4A2ZLX7aM48rUmWZ21>)8ZwV5k?mQW~8u1l4!aBbp1udDZ}N|#<_utu*dQ$ZUK-1 zZa<7d;fCSWuvl=dOkObaW2p+^5kgrxvzJ~>!JbEG&L~*}9mXdB!$sOsVCD#cMEx6I zo61fUC8D?>WblXGr&d*xx>f(O__;XpPd4 zYw+=hAwGw8C$dcQZ!-{Bi0Mv{(ZZSK@XH7sSkk-A_{|w0NEv?X`h}cjO3wknmgS1x z@bf-eLB8tv3f;PB0JK5eD1`hSO+g9y?9&mgUpE&%5Y@bIZ35@$tiUcUH@7~klB8#>nwAt!NVdO~D=kud}k0NZ(1 z(K9a^C`)TwTyowvvBKda`&C*S2oR+hqQkuY#&Uj~JjMvR5jXQT+T%+-PV|-V*i1Ow z)-y5znh>tu^(QDNfv^K)4Zyw$(c=>^>b5aRTp43>l-1~1Gn<`S%=Gp1 zi`Mw&NV+x+Y!72E;sDCfQ%GQSy;P*!Q7i_mL$C+>TsD9N?_^lL@7_cYf&A#!*S0k> zzrYK3g`e``oM>ty53)b5TmHGS@$rw>&kezOVjpk#@VBZ&>nKjR{{T}6NG5X{^oYfN zbC{fnpw0&ag9$Wrzr)-MIx4Wg)Z^mO#;XZaxCmpGVeaLpCHX35E^Jsrq__$FNSPpr zBB2I&KwL3;M};_Y+$$0~Wg(0lD!mMAUo*}R7fvsQT{oe0Y&828K!fO@Ok(yr_n#F0jy@`Aq#yFIw+#<|C+$kum~Wm_s!@Njdk} zZO#g18VZ8L!KKaDfaNn-2CGGE!6i>9peA}!4(33caUgLrc96;F=!`O1;{YA>b{$Q} z#QYIb5(NdOa6av&W(2f0%Hp=6L(z&{P=|+vvx8*h_gpk002y8kEkJJbN{3o&Ts%V?(X$(kOw%VWb0caQFx$1u93~k1vUoID zG4_c~XDbXi%UN+rg>Ob9}C%jcOr2ha{NHIK{Ud|kiHAMHz2P@~rZ;H&L z;Rm@)UDbgl0vgfv9u!Y4HP$BedX0_4j$+~Xl0oULK-XBcL9q!ZHG zTWEG|jyUh2{{V;db9~Hs>H`;c6O?fWEbf7&)z2@`#uVy%v$4t*9=5pPRhS`v@e5t{ z%l`ms3~f(JbY}F&U`64E%tneMn)MpWwS*VE^%sJ)vjR#>dSZJ-9vl*rkq4i~B+nb8 z5n+af01Joc;|d0F{>nPj8gnj&oh>CzY%H7ys)bn?cH`U>@aQ3!qE(CTJzh4C-A)-9 zdUov=@gXeThPJ_lmxcIgi$|%r%otTACP6Vouoxu&09F8P2y0Bb#`bYMnL(d2B!0loQU&D z6BRzvT5hFQB zc#q~v#pEB!h*n;Ujvmta63wd)(mdA*L%zbIC2|D}bH=c|^aI#+Oz1_)SwO;uP@Y)4 z9r$~a>BG$U_Xsq`9-ELjUNgQ0U=FGRn*eUvcfc4Qgz|+^S(Z#cU|R)rI6BAA0)J$1 zC1J_Y#g6%f)(i(pOLVs(dJ3yE{ysr>$T7jRsMw0Q(!r>I1dp#z1)uNkY4)z$*?}pm3HR6y=3YK%OaxSoh$2_1#P9KpT?x24^mg05b>`x(8Cy^W^;aZ^TpqjOC?JY?p~)G4)$jM0Gw-k za7>sra{d61Yw^YzD5WB#a>tyxG6At$HD#mF)xrC`FB-%LWE(|kMt&g4*S;+}1TOCq$VB6Skf>D|HNn^X@k`Tm$!k|Ai|N3ysUOrp zkAL*?pL=NW8Vp(0<$!9zWU@X*%*4+FIcjpfO9_RAc-8n9qYyx9*;76F4H>$r)i2U= z(v$;A)HC6_6yngMmOHF4b9^w)Br=fJN{$46QOr4D=4Ov;7f#q_6DFJoMF$q5Tjg9_S6_{(5IbS;T*Y+}@o#Ty(WF~5T% zgUu#qWinL=DvQlHFoU6@;<=o{&bAr^lVO#t{oE6U0d&wnE|~9!I6rqW z?GXllOl6`I7YZIWYPf{^#oo++#7J=$3|@CfGy_IUo=a`VH#`@*ZmWmS#06xeTe5ZD z=VB?a&DH!2JVT(|BqOGm0?z1Tst?m}pEbc zY^P9Ud;y*+J%e3)Ucl;W9Jy7=9R1i<$DJIv7dV1t##rx=3*BjFRSwA|+Si84$FE#; z<^KR*e@Cn84rwYoi{L{==3_0YU24Px?<-Vp;p=C!6 z8X3#4<4Gb!GOfB8D>7m;GFcj!G(chXQu0i|GOiOUet+3-Oi+CUWu=}xhl2@b*%g<} zG=2NbA8)9XAm%O1lp!pBRUa5lpQkc&~9GQ28_W3HIzlxw@e zzNh9zL!z5@+0Wr|UD=?fBRoxt=vfW0<%ZUb=6w;8JFF=V_!=ORVc{%d_WW>5)N`E@ zFtcwR5I?il2+89&!<48Lbb?*2?03stV{LY@&%TEi1YnlR z)asq;;`65x6|+*QbP-#^{3Vx7(7PpXlZ$%35mhQdpY}M3Fz@oAiEy3rOfM$IxH8-w zH-aH^#PPY@fiW*3&N;+*27|9h*ABdXm;_MYE}p-xWv?T8sV~~P`N0^>2j&Y^ z>1)ZJf2WrK>r!=03k}la_S2KEZ;lsZuuUK1lkLEqX@0bsea{7=8Vsfm&|T{Dari98 zm*utTz>=7l^L%P+4lp%?@M%o7%nKH}I5a}ytBp9Z3mg?xHB-CN+7L8FX3i@!k3A4U zNw7HVU`^0j*wIq8zTPL;J5+Yye%fj@HzoVJcbSDr^~|8Kp$f6C&fD<#QOV{=MrS90 zYv4x=m-g?cz&9#67cp153b3}4=s&K)^%MtyRJ5DWVaE+KjBrfWbgEO)bxYZ~> z;&AE`4F$Afb{b$FyB%$jgWBsZXFLA@5HjTaia8Q$5|nZ+Xw>v!Ok_Km^L=HMa*Nx3 zx^fbnjNL?xlVu;-gC?kQK=X@*zN>5?q-QzL}qdK@ydOdCjDOHH;$FH>j zjX-k0=Wg5%ZZYvb!I@Fd0pqb+D?YGkPlpze=PmhA#)9k|aXbP^B}fA82nA^}5J4BL z9d!M7LZQOC22vV>0j>?{s^0w(!b`qXu}R!w))gRQWXG^z&`J+P33(S871&4vmdgpM5({N+_UdKR={kX`o|h5`O!xc;TjjwkGf zgc#S$p19}Ee;&qEkM+Ei2x}At6Jxgx`ipNl-uGj};)^_9n0I~zFFLM)^&s;#{ zxyu*N=Prygg>hQ?{5f?2)FeO@DrRZm5Vm}3y*md=7Bnz z%ey)l1{M%n!g$t5YxWMzG%C93hJ34VozrcYAx%}vc4+v?mBUQ8lk^Y!jb?stkW(EQ z#@Mg?HO!@ZqUbW*nAdzj;5$a9+@YZx_Qn)g+3>XjZfVsZ4hVwP-VQb|2bx6-zo5t? zGo0`=h1rb76EgAs@fl%R*N5Ny@*C2z_=84SuLR_U1wNLZ^Ct^IR!|qCHCGmKjKY+> zotkr9xV-Ae8%5Q9uF`VR04=sDqjy<2p6k&mkxl%!s1#Oe3jD2!Ps6eSe8vcDH*uM} z!i3XegRj3*&x^!JAkQ#0G>Yps!1IC1GYOt4j?5jryoOIo-dS8O4UiacK$@q~!Pdb8 zqp%?@FK!ohqL@f<#)FF!!x%t=TSdujSDz{&my(Rq-`q)9G&{d z58h1AqGC5YxlVk{8T~1NX}6b*xe!b+42z3rrnpR4E70p{%aDN~gf+ypp1`8vgu;jm zuUJEA1E?J=Wf?*5omalW!8_LPO%z0dM&ffwcp!9a-^b^La#k`1IqMyR*8xq5LAQz8 zxeClwhe9m7w`tN{wnPS!CRe{HDj!@0D~kz1OPW?olYmcg^c7}7*@c%Aq)V7h)EqJ{ zba4Lwv6kD=y(OhQZ4oBnvnViS8B7eRN6pnwoVMU_=a!oTKE#C8{Nf*DFxe3qPIM5s zIHWd2X14qS6d94wfoeINog)%=X#;dxsy~c4&{*@>p zZBVGIZBaX00!0h#C#|de5hQ z8ithB$g!RwnOv8XIwVX0K zSIMGa*_X=`IgULR89*#{fl2sY`O(A)IytTr(6EOY5}C4MaRD=byrDsIwgjRybK6N~ zJ6Rbg5m6ljfu(&Y(}q6sqHqKiXUWLTD`q-zYgnZMvvVlAxn$WhdO8{lG80<4y_T?GawYsBU zdS&;Os4NCnN!ig`4i@s-(EvgO!ooCgOJL_S*ljkYg~T=CP~RP0hTaKGh$AcJ(Dh_I zKO5_YEn@@JM!1rTFsr?~tYa3#bO_Z45?b?LQ-9v74TDvV#SWrE0Ka{=(SdDu&GqX!)ud^T^M8HvNHS(CdMvMD~StG1C!IA z4+l4(O6rgIgAU6eFab&v9}XxaV?MRcAYrpkAYbI=l89p-F`eVo8InEaZCTr`Vpzb+AH)^5dxTk}Ki=08lxM9Oz|G3X%?Ssm!^zKAf8` z41#Aa89K@E1%b16oKl)n2ItKA?9L2qT(|cWgQrW;`pL2qv`VA!Vv0y8)dX;j?sJY( zu0$Bg)bxj}YdVTi7BIp%oo|E?wIdLI44r*17%xJmj|Y~2&`7w58YH7~!^^xZfee3L zkdoVY*rDFgiWOIo20B$mhr!wNq9_TlERBT`5f0l}MaOsQL=ChuB0S*YYr2K06m82F@zTCL zOn>KhPsag-mjWn?^0E#oIg32HqfC`PiSp-&@Rg;dIYidFV*8vT~!%jx@gIWh#2Q!N^wBjjY-O!c~ zkXZ87^$pWur*1lz12tYMFbuVMMU86F$Ot)Fot(<$WMRjF@HjGF6_sHI(aq+Hr@X`f zB$1fLOXE(j7;X)(7j4n=$;Fo{Syk_-`s6;rUI^g#5asC*ARGaUX0IP4)TN;|r_f(uDZagu8UQUovz5DIK6!`)43<@J3)6oTDRl-jJzNDLof{J4 zA_g)vMAd*O4hF6n{?1sRYWIMr-+MV(4$}+}=%xBO08p_fXwayS%RIWORc+`GPP1!ORZlt)h=K(Ge{cDO`_PgntTAYncDoF3@RV+7W4E>|xOp?d%thWi?{hZ?AM z!a%j1IqTd~m0mlFCXicrAy9R#s2fzt`QbcvG_KGk#3ipz0u7kYHQi<>dmKeC!4sLlx_`dvLlB#O)mcAw%Pa ze>krtI}6;tb9lUfDynX%-D8N^H^WP3x_ca1Y;Bs*nqsf6BUh^*EmIOa4aqWP`* zV}o*mAyX*c(;puCrW&oFIHhZIKNFfl)IQ%Y^Di95fc6TNy-SVlI6^_r$m0UO7w3kK zI7i5XD6EWNxrp$|SWssb9et-Oe?9oHIS}K{SSczdo)9KS{E6OC5!jC`y3Rb|{J^dy z4{R)sm)2``KQr9!uMN2V<-V=`_lKuZ7lVB7+4?sa~N(u=qx(}vpH3R zO}}2@c6sxGC*(WQknX^b(W}M0V-kBZUZ*13g3QX#68L9k(2-Y`Ods|ug}XHG7?B-*^1!toik4BRW+ZPVstnmo(}z2J!VIOJ;R?0V1< z`5}%OHq?N~L-M&yPWhUaz)U}#{{ZulB(9mqf3w3)R6vpt8VlX)pCRds(85QQ_k;0O zohXF=0D2hVgKh|bgbGFC?pnlcWj8ajH|%pia+q7C0SkpP@H-S1c1p}!Aq_4Xy+fvB z6^RV(&YK>voL?{rU68ovD}G56(i-v~s|BEDU$8ptHz#87m)G>|WxQJ?p-GpeD;CV| z@QmDcaKdn~$oA)1TC$dDZS5jzhO4S6HKfx=!isg#sEp?{#@dOby0>$JE^}jClXRF4 z4%~|jQNXVY!l1Mg1H4?>eF7>Wlm*)pl=CRNI{*P{-;QiT1v_AlM8TWxI5OKw0%EUS z-M%@${{Vn4U;?F&ZE@5A6AVG1=PnK4BJ{P5!M!_w9s<;OTZdGt$USoB;>;xjV9H5f zz5(S^Kcg9WRl_t1`xeZBxEnLe-uPBW`-A%FoL7MNG#APBSfzAh9oM+Sf@u{= zcrjx!f53Rha~M@dBMTN~IP_2T)gO+J)_3JNn_npb0jXO#pLik-Np&%zxMvPiLUX|J zmlRK0aOAwKZ$*^|#FvPu8K<(vjTwA!6s!{>S^Pl9d`*B`nN}s1V;yIG9O8%aMQOLE zEQn~MoHvZ_;SzzarGus8+&@$C#>OLMdj9ZWjbKTX^ZlH=b(j%|7*hT}?6}Cbp&@My z*`}`v9iS;%$@~M|ymHMv^WN;-6CUtvAPc7|Fq5>&Q;_FcH#=O8{_CwKo*%fB4gUD$ z1U{z$!1amcLUW<*2&&y_>4-fVN76b1lM64QXT1J)SDKcMAEbW$A9lVfdg z%ZNGJI6W@{j}4#0InOODS`cHV+s^pHvt`frDnCOwov;b5P}OH6=K|c~E?YH=4mc*b z2F+2}mDnb@0{rZ>)a#2A)FeG_u$3*(OgEfVj8ES9M=$g|ac!3;f0 z@jT$2e7N+s(DyvXaZj(>-bm%J&SQEmfiEU+@J%!z)weSsk~ny3@Ro!0FnOh-e_@OG zIu_G#>lgc0u=XzUG7^6C$ix1ElFd)vCbC7?5fb@~JONas!FQ>g7z#Y5^O^FBHFT8v znc@}W^7g zWF`p^AnE;L?Y?PSiscXh9K0kQsA;Hu5O)MF7rTiVFgQ@KoY2nsMaoS$mU1bIHZOSs z%T5a%G{#HB-sVb?9VqL-YlO|?#UN?`0SR;wQW|4wrvx*@yxm-)Xz=D3M4-=`Q$g#E zauZA;`x&N&z(WK)hB|}Fu&J;KRvb?IjP$!Qjv6lwj3Xxw3_DRhjwO+E7ub^;4Dr^C z?-~56+4aZ89l^{-^IIu$@FSL(fq*K{L`*rnYSAcLM)ld+Je}RqgYXt$b-5ofY&Ura7Q8y0tXj5#m1SezM+WYi% z#IG%Mb`xzcWfm_H5xzJAXzi1K`Qm8V4B^7MaL`v6E`Z*Ww{ZB&cpeJJQ$@8OpTyxf zyjBkeKBfC+aH{6W=o3uSuxVDN;j?X((e!dtk<2f)xY}?HYeWGm-v0nY2z#fnFb%F$ zVedvvuS&-5*KeAU@$8Zn)UUYdz^Jg&{8(R z>!-gQ(@7?ZkAt() zAaI5%eWSk_#(UX-BXfe+P%K1BpwP~;j`L*)wn)0!u=|e+x0hyDEu$%BCTf?`} z0vh;4<mg?DYMXXu8QLs;cf(+7 zFLlp}i2;2J;4;loBZ>g{aD*_UxHMp2SfFo!#%2759DL#HIL`*7a3^G6{(bSsE{LlG zb?EGT;@6VHFK$b5^`0_rcLg8?g8TmfTnnCg8+tY>2obA?UV@ujWNp`C&lcKCU&u7< z>zSl3$;}IkrZXORK9W2YqoFgbeBM~gx5Io$5BJ+W^um7|S&U3O;aV}M)tZF$dzd0b zUqQGT6ggJD38Hy^gPr1V>BW9Sc7wC4mFY*uWcEZQ;p;>843HQbgS1k?=~k{Xd?ljn z9SH^q0A=O4D_d}S7aWH^?g6wR6f%mXU{lUg21HIRGa+BYQh|~@k?b5)MP}Dp&maMQ zy|R9x>y1V42(tA6z{{I)B)3f=V^Rr`o|d;3Q9^E}z)^4*j86)LUBao3Yf%?5+_MQ| zD4Jay)@w<(iW_+8g6$v{6|y|%f`L)bh~I^9;DTVi15V=hb(dTNQH07ZQmhztQN#{q z5^~d)hy8&-HKJl{?8bjM0|XyXXsq!UM;V0T^-$5@{+HL32e5PmZ9fiA6HAq?ZvFWA zbt|8OPh%S5K1OH)lM1D>eBuacJ>bd2Qi5y^2EP@LD11>HT;S)ObK47-rw-*l5f=hx zLu_!fw;Kqlu$1ctF_xHe#b7m&7r9so!KqRVeA4g(8#K^BN_#M(21^Rnc*x@Sh%t;{ z?q8k=cU9Jp69EUJ92Aw5f^TSc@8W?hqCcD7HTB;hlqc*_#@x{Wpm~77KwzC<`1&`O zHD{Tv5=3g=svmzL!#pvnV$;`fpd=nn5mv3Rx@u% zi1PioI!slzF=_scq;m&Op%9+@tDSpjCT}R`wswm&a(B&PxhVwh?qh?t==LQnr$NW7&lGwdZxx&pr#n>3^*7dWV>>XQlTP{$_dK7FTKMU)8~SYD+}j) z28IpbNhb2&`V2bh<7n2CCx8&pmhbJr}U27PDmB2fT2 zvSulX^XC=Be!$Q6d&jnBZ&Q6y9?Y6L#*(0p5aH~Y&U3;h-!dSbXbL%GIYguZWo$55 zIJc5(0rNP!YrF-o3>Ty*Vu^)aKP3}cWYI6oW_5U7foGIXNqkIu#Y775Ms|0>P0!Sr zY>pUvy>i-cwHq+(O#HZK0tN1i8eH;31$u;69+q*-@0$fkX7;4a_Wb#&({5o?N>_+p z7?B5K&@f#10pjx8{4|^a;Hoiy)LZow#Bgz?BUr-h2rR?8c}tb?_r;|{8NGr(<@@Ii8wP^utjxbBP`C+W0E{tq zoicKEcc=AxOLE9o-SIF@dk|{hd7{-^K&zXmm`&i0~R5U*}}mz zWEOGX9IK1qB_wL^Aedc9Tb^Pd3t~;?$Hx2SOE|68=!!`vZzZzAszbPC?;GUeQJEq# zOP6ns7>sRGB~DLIF~T`u_Nspg`M`sbL|{b(u*btV=JRny$(C(3e0=eOGl=Ni2764_ zoSx5ac#tG9$#t2=D8ZUwgEVHGI^r!ZWWm}nnQ@hFD0)(tj$|z|3HWdN0BB{(#I3m# zafF#>1GzYwnbO`(-|snnW4zIq|2OH8D@M z_<|#};fpy|WjlidD;T^GZiO?^n6AT)`~{ilfZkx4-NdWe5H;u^HT(E-k`NHmC$qmC zFqD>pU~wFnM+nq5t{K+KALBT0Jb@_#2*rUPd(+N2GY6?~mnNu= zP-WM?5I~ZY7YT(cJ{Zya+9L-40Hm1yIVlP{rMVwcu+EELp;wjGX7Y(9#Pu!;nC;ES ztz62%0Df#}6hH;MCvYXz8et8w@;n!37$mZGI@o@B0aaU1ttH%kxP;{=FK9t)XAT7! zER@5966x!1Z^~)@&6g(lSC;0WIV>>oW_;nw0*2(E^XvXNO93c?S%ZO=zmawCbYIzd zm$959ejoUV0^`d#z+$YoVe*Ebt`umgsJYQp`%Pznr$hG)#JIRA;NfKs`MNgT&k1iN z@df$Zg4u(AIQ@ecir=U0tQ8=(7u*I6(;FL*$-x_{v>!&nD^x zijoAZE5`Q)q2h*!l-GS(qJ;LNPvG;;NW17Uf42d8cJUnMtsD0ocKazkTNoeesiGYS!CFYwCtr|&4NLZ{~{L`f5vO)_H zOc$rqJXceuw4`t+$louIa2OYhFF~BQh(R6FrE+v4`jLmTP<9z9td5@UVV2WkcdUYh z*Ba&Js`hRUYo=Btyb7qRC2=PVa(|rIGnH+-bM^K+8k|hgE+yAYqXA@MkU*YL;QQK9@$s!9dZd!#%`5jbAq)+cSrH^UwSe%aMUt~C z!c&F~pk3}NIn6Q^Cno5E=2msv<7ab*E?p`q`10&KWJ2=HRUmp|3Zuv?^oBLJ69CR( z(qJ)m6Art_;&B~8bULoAclXyU8W3H~f8fvG5eEWyD6n1QqCT)`lD`yH*Qfc**I5cL z#tq2%JLCSa^A-o$CJqUNe(1U5DG^++Jwi}SBQrKJrfVxYU#*|An*w;KL3-JU8uQY8 zxdp!Q22@w9u8GC$44Xik=RPp!ifFGw)sqxy9FIA3AQN&{;4y-wWZ}1rZ!fMGQF0l-EH}MR z!%>41L_obCS$|m9Axy*d7gW?`{*z*~EpgKH+IjEf%_!`CdLDUJetGL=ijs|CU) zh4J*{q0FIZKc@Eb8ONHOWn|EEfA`BYiq6jD>n>!|vn}bJqpAM@*N}`C3{=EN{?8hA z4P`RKnho&V219d02$l1#^z7pbgc^p&f1GU{_bybQ~xduU*WUtxKKda7EG$b|sXbmet5yx2&XT&&#ObdhJb{uAe~IN))1 zO0SqJEVS1PoKH<98Y|j=oPujsitD4`lWg#2OJP@gy!&U6uPD#dQU3r~yuB~D)lJuG z&p2>WEM_Z|F{_WBjZ0%Bq&HXHogDFsw(<$=_GUGoq4q)$d}v&tF@Vfvk{sLB%Q!pD zalqL^BPxx*{62YM^1F=OMaRR{#vt8wSXaeojBz*B4S`@L3|4;dD3S-NX#W5{@Txh- zU`6SZ!?S$Ew1#P99{KAy;4HBPEOOYH9C@Bx5)v=vn%{R=<56_}O;%93F`YZbk5F9w2lD5`woW~ zchQiYAu3Ma)~^CW#A61|o^QVi&+PDk=g2*BN3KkKMg!oIu~7E@QXiodzIk9K590?gcl3Sg{G)gdEffayVq?^FxycjPS=!XRdG$eLDJ`YQt+R z%A&U^jmQ!p2zjSsOxugW67%|XF$coOq!aV5>%mlU?tO1A~bXhlmE#YbyjWZ`D z;oc{JCgP46pwv4U?1;dx3-W85h=MB660yB?b74q<*3w}T5l$!=CK*BLG^N%~TG^&& z_T!YLAC7Ne#FHGBAqwpkIL|6AkHMfZ$v492I?zaP526sZiLlzsH;Dwl*^B}w3nQTe ztH6RGr!pl?iFU4W;Wj%Gi9`|yec^fiN4#dD0a^O-&dEQl$0RWP;VUmXe6$g zc>@7i08mVq!qmZV6fkVXIXnJ2L{){Qww&Sq@J(p2EYXGq^9pN&j;l3kpj;BUt~^2n zIjO$K(Q(NbwAdfPl-}HDjS9GNp$~&zf=VzxHiC2*=HU8roZ&NU+mX~Hx_-p5s4%d3vW!UTazzN~WXjCz*T=~I~ zd_Jjg{2zJaxRHF*dWuqe!HN>O(x37tr-nJ72m%Jq0G zNKfQZ*!unEE52kFs(Oq5b16irf^FLR^NI?4$RDjS#Ot@y%2v=95S@%(r_FS~ zoGt1!cW3@_kBI~b=i6`fhw)jyi&vc(5*`6~YjicPLDTFyWrp z>sOf4JCT-Ob3dGw$Fc(kMM?)BJV|L|6F;&>I$+Kt9F^+=q6HgF2xp3O!O`X70Bo$& zXwTGNd&O=fbG~P&L`HO7jBbCUMxaJCjyA!joMI}1gFlEtOUdsOaH1zsE{^QGoXY}i z=k&pVjQ#V9q+uw@heet~y5bPh9-`Lwg|X|3vdbj8Ah1#mF3NGsy5eG2Ids{17IKm= z5^@iDaRf%iTMR8N5Kxjr4jsGTov$Ko!f~tc+OsM~&rVpQqhrK6+OV@IQeO`7wv+~4 zx&$Y8BUF_8QfCZAaa?eiFJ}DL=iVj+2w-${`Mc_H9-}S>X%oMbq<<^ zRVLtj=@}ZF$<^V?(y&&E6ZoC7lGM3@wvkgg=5vl!fgth>^QX0Y0D-6!$pr7@ym1>#G~?ZWQ%!ol|myH!RPN9H;Ws?==K4dqA&k8#-&{1L5`$oj9**ZJUbgq{D{y7C~*cCr(Z7%pfSk1 zkk&P+rx^)Jjp_;WI(x>9H13qjv1d*2$jq?jJRUCRS$N@4tT`~+f;)8LS`EAH@yFtD z)Efb%zRpVZo-#(0h;3i*{{Ulyw%8``3#%RQgaB1j?sw(WZ!k&<*$^L^IQ-(LT3@}r zdA%Pz1g0N)GRhq0Ymrkv)V?Dtc|9CvRnv)|MChM<^bTs{cb9G&$TK};5j(Tn+~T`v zUo3`Ex)0tW{O|U|r(gKtL}M>#QA`$o{&DibU_R%6SnGWv%R~wz0?wUdnbE-DSpf&x z`1+$ULLX-0uU=<-2c4L~;xlRiyN3{<7S<){@?yDk%2g7?SHP=7h0Bl%Oh1HYMl#+o zwL>#{E5Z`(iNicA{lOxoNG8&7c#Db*3PISwJV!HUPL`ULW6PFKTcx6Zc^`uoPZtpk z7=?)5WWZ3M%>7Wtm)!6NWx9fvTR0<#3U%hS!B&9S!r~fl1LfsPK=b;iaaJ#R*kYst?CITuOTH2VW&)_AteEs+b%Tcmb@Y%NV7}_f-e#aB=jRnKmx8iO$HX0qDw28L5G8ppu(a80*qO3zk|?d zQ(sw!XDH6XMtldhN2q1tx}G7#j`Te$pmd)m4mI~f3u=}bqLDKj_-1#?<(w+W^3So8L=RKR^aEF3uVKQo@`QQ;*mWBef*x$||QrkfTq^Tz)4pvc};Dq==%8xiv zUelx*9Hkhuld^(^=AxJ&uUafpI30PYJ+FV~JNAkiFs;9e)4YF+8Cm%%`Ll_hDVTi{ zNxsjX1tTGqy4GCGaE zEM9{F^=Z$Vctm7oAIIl`ZW#_6jp;}xb;tHMw8j|cSa_61CmRotaym6$5INjL>!|jR zw=FL^PMHI>+ewa9cZGJbg4O}<>B8HFsyzuVOdVyw$@J>i6^!W_Z;N)kr#13qxW&|* zY4KbejEE!Si|A}jO)~Jz$Bp9YhTsEC!?GbC4j@u1P6=T?_Et5U3bbPu?&X}u*1VpATgr4mmtHNCHP%aPQxLj*In?|$E ziV3o3zm6zvn0qzI3PxY^oxg=XAkIDX#~NIbM@C#(0p2D5qNdctOt(b05oJoql^q6!2o6EEwAfYxAT zSw3f2&Uu?a>M4CO`Tqc11O$^M30)=ncX3nLFPw|1!O~xz1b-PyKF7lrdBr+zqU%5< zR67HRM7|{g9;<1s7^5aXA!SLh{;Zjw2JAir?mDCt&~&1PrDq*BuvPmID_Tu9;IEKI zL08ob$vtxmn5>1_gBDNm$Kvdn^q=`34D0=2Vd5hT+j}xop+!oh)BuE-R^*%? zZf$G+D&|w@Ohz{{Xl7Og#~e(hTKiWm`O`Gd5TU(tfZmC{1Lu+`3VnsW2gbiSZ5vt! zf2^6txm=JEX2^pVWopJqv@CUf0N2LL$7KYQ7ohj7f5$Z_J%SH^`~LtF8O)nN&cth- z=ZQ$NNRd^@^^RlQ$+D$m2WGA4;GEl@J(FFCFma#gpj3^tlwsS5=ID;U$`J`;tIatF z>r+H*w4FJSY8Y@c7iN9jAX6AHVJu{3m|*XWL&8q*3E`$*vw=^`E=U5#-{t0?^jK8~ z@WNs1gN{n2E+FSL;mbI60DwGGNA!$UoQhQQb0R5fvovH)kVljoOQFfxZw<0Gh?FoV z``#lKUl{Y87}+nnJ|QL)&=#JH85i6f+Cqz%k<(;MsTQd4f+24L=WT< zo5-ly_}J!AJ}}O`UU=ylUvN|#SUDsM&bYRIxB>PubQvNnrC0KU7udxbjImP*bjh;! zS!+(lPrPw{YcO9Gs5BGU^1L_aMYwVH8odtrovYA2oU8aA+{+6YB@>L(Bm88px}c0`x0$ZGr!q{oECXVO zPa-90w+%xI3SyvqoC&xyHhj@!F4l1UqmU`)q%!r|hH)}GYR3%H0Jw944at8;ndk2S zrL3R&OM-3zU{)u|{{XHuC~!gSd;D-ew1VU65prf@g(9`T3bX$J!u86w7)YheE@)#T z9B&R^*$t)Y7~sVWH+#^3_{htkSWdQv?v?5B#;+`7vOY8q>pVL&bswWscvfCxBQ1j0 zj+pIKb8BvO^n+#KIFLpTab=xHR{EU6r34i*jgp&*-wDm22(H)+z8cbvNMH^(mVFLR6^q}#q;-Z&uUWt< zkIe zUXj}Ck41*Mb`U8#o7WrA!1l>mByX_E&dMh*A;qe}ms}?X@?t5*q+(oW>8Qyr8YN&9 za>Ada!B!Gmf!J7j`pu#|&^g=8vmEZ}kxHn4xy{KHU#YcvJ#uA5LOq7d_xo1)66y$YZJ&7BivL?&A!>qUa^2<-F=;SmKDq#`gw} znwekhS4b%=Fs!n?R3v2}iXQWK^V>#=3CIV)0ZyxeioouZNqI%T>Wk_dY)z6Cf+$=D z8??>PtD)a+I&*vZyVl*`1lUBCJbi=T?&wN9Br$j!!tb0?2QUb^S0J&TEaluvzH`p>g4~|C- zNYzR-D&?An{VNdCDE#4Aau&`!{{TX?0~m13HV?L@N1*%e2Y`_EKgqFUD;JEi4}Fb= zx07(S*u4!-;I08UfVAHy5wkZp*@t4+kHKYZj=BdU9dk-9z8?C2I&(9+D*Hf3^_#@J zWG=#MI?s8$(aX0cVin)gB^4oowmM7q^>SoPpp&jy- z%t2l<%smuPRZsY14TPBV(S{>8DAL z5An>sqA}P$-!I-o7iht9uOHdh5Uxl)U?d{K?c%hhfNeli7*XavyezsXYn-*dnYIQAZsOU_cv|?7a}IkhQrkx zoPLo=oi-WR{{W5vfytaFofTK39vC&Sl|rTJAGqTL^jfi}?DbgT&ES3i09)MHADo02 zdz=Bwg3!*P;8{kU7Ltr(qn-jtjiug%{`K+9IRKT17!snrXTDS5Is)$U6 zEwZkK;Df3sJ_^kE{{VQJ1hy&LWB&kcIDo)bN|rIyJ*whc-B(%?uc%pZBEzc3EdN;VkaTLtk6&I4Er5WA9h| z-wsMam`pNsFNN15hg0R`vteuh06fM!t}I8UFpySnijk5^Qo~t-_fMPVSq7iLjg{vh zc=niJ)krVP+{42piRXGib zGOKQyCp0J&2Y*WkO@iTp70~iB71r5Z^5FcmsI!%A(d}(^1~VvQER|u|K{90+@6W*g z%&id}(8CuUzK+i(H|PhCK7wA_Q@V=q5ue`X4WmEaQ5?pr{|fyq*QPUfzdD&N1hBeUY8vMWBqFL6Eu15tq6M zTG!7!eLDnt?`Qme@@B?QTk-*QFc*Z*j>2dG{{Van6Kz{GkoErZnIWNL4^FXFI|Lx9 z=%3A&J{iwHEsqsLGh3)-;sD`cv?yuTGaYv1na&kETC@W?x0wTz;1wT#9Ksfi$|y*< z(fV)|o*PD{9T9YWb6+@=S!iqGRhN|$)$&vXSalh3Co7L@=5#Z^CUgHChyPF=POvd;Y7*9_V$PtepzV&ZeZH2PE0mn?V?e1Dj9fK8LKy{rm0 z7EN92^hJ?Z?HcYilM+r7YdA2V$=uAr*;|>-1g17A@JRB)pI~MS@RU+ra_G=7q+Z_9 z{rKUf=xVRenm1GDnnU8MMx)*v>68=B87q|ulbGSo2B zTR`YYFF8}ZpVPw%c*|gD7|@eERCaatNfnKX1ut{~CH1~WI#$v;0GVaFU9YCwI5Vq& zIwatmGSsIA7E5w;gITfDBZjjGx(w!b};FvLqezx&Q7Cn3n@N%U=#aU?bbdH;8L5C19JNjk2 zkn>LcGkz;0>bV5xhv(JL9hMl!Av`UmTUC$f%;dZuh?YeRY466f$Z5DY#ov$&ZxfwqvqlP3Kau#u4TqGxa zVzeYkO%666p~y|5^!D$E1PEkoaCmSld2_fnb{pJh8sYPry>N_%U ziCMkL(ZQEmZk!UdghM-X7-OmXC*3K6s|1YJt;#nMwG7Qh0j%>myGE+d=4j@(I2J8mACz*`_43sA$FnXCpY2+h&=ZJlF7pCc1vuQ!ux zm8wohCQOyF1@@hBg7x##dtNx_!PtBX+0y?2JEpwAixsu|nX;`@M`dG<4w&~`c0NZTdjOX}XurGk zS$Dysk;y=|GXa-vAwiz)TkXh37eVK<^YyhcF&&beo4KSmm zX24^rd&O&j%<{T3)-b$6j$tfV6$N7B`mU(pOl!iXLk|9M2*(}|W#5Mh4Ijb@)96`x zoMr(*DQ~m--{%sbTIJ}yr{4Hog|JxH<#*T>^r!F~?@CNZJR_PY6v!fB*{* zVWX!5J(lj46dj4yZv{VSr2b)Oyx3$1&~0-VOc%1X&k`R4TSw!beYF&RX=j|~c&fk= z%oXs^m>zO#vBN1CB;25ph2W4_nl`?G+0paLIb#l{2Q8hFVG6tq-cD}sJ+Pb`c+C$Z zG)l+z2PX%`XEMvU3w>TH>6LFF$Vg{9ay+OuK{e5k8Z7ZOKbWF{g9bJ3H<=X;{{Y2- zOwW4$CHxkbu2*r7jq^0%cFNSOag|<1jglh61$rf`=YgSGXNeqQ`^Fx*5yivs`MTms zVe6XyUHioW7jw-KwS%?mgf<}#YRXjrX1bMGm>ut(xchBU63t3i!{x{Qz#7$MoWYpn zL|dL8aWH??G7z%!c~^Ke?MuSxF^#C*d^{MP?tD=XPvBZ+Cw!F13MPDybLi>H7KQ{q zus6B*a=AR9ojZ^_M8vtXJjA)BKcARJDbPSOo}J4ZI=Ne)CC@Q0t4-u_&YDp^QA)Ba zlI0F~-Zy0gYUY=tGfOPKGa#vKC)MMbGbgNnX^Au8#7m7rl!;<=Id2(D0FY9!41!pW z!1sI-5v_$r7|J!R&kJ?TlUFoeb-sFiuE7BCYjiLzci%>Y46=nZg_zZ zhKoI3g>g6p_SfM-_KUtW&w?r3miqqyjjZpnw&b)!WyJwT`jx>h*moS9LaByG$Yot^ z;3owsk80v)4_fm)C2WBRO{#>r-tQTciZ!L7F?_%C%n-K%kwqSvlY(GO-)1l~t6r#5 zz=8pG=(zoGEF2mC0O-OI3>&3I0Qu;k{DOQ0o85?g}t}1O_)m{+xHlGt12uW;g!I5A&1Zc`29({{W`=;O1mzpQR&Cf8j$L zO3N5@*iUfbNW&JMj0oRQDT*$gZf@FLsW6MS}9p2N`5So!(OG%J7) zr4kEQ@U5bQEuoQapC`{JoU?|8zY2cx2M%nu$ayYb9&32i)2?g(06iC;Ra6E5+i=Zx z;JiXGFQ&$me0fS5AX{!JhC!8wgO3-i2l5tBA(MigyANd1Q&aoqevxi~#vo0 z&{xDiV$w8LNqFc*9j9-#@BNzu_s(kLeObJKYwdbEPQN*Er+CB43vhlFa`3HEfoI8HZd%TAo?lH2EEVxn!BCnuXff9h-0f9Hl}F`5Pa{g+7Z2 zhJAm$Ne$fq`RNRMOn7UQN0bWlIZjzYxp!z1BE9mNx-0H7;U1F{99NhOliYZ~gfQ)t zcFO9&8D`bs3n61spLIEDb@R>2v>hxF5X>3D#`I@TTJT`}U50cmD`bWS4FUI16DbZ# zZiBS&t&U7*lbb{Z%KkE*LQD*`>GiHx_|Icj`|zAu!GZ2BnUk=kpM$3(#(;mbF&6NKL)eWK2ISH|IKRV5n@Q}X6IuCAA{$pFe!O)M%VptzMcH!{KNGX}zqhEyNGF_DYN_6NBcq|h0gK(DQ4{#K9 z^KB^o0tiD2@P;GV%NO=8sVjtf%H%t(Pz)Eu$)JuHykv$K(2Gz%uGqsw(zpkE;zs#G z-PbRjAMB1IjjVy1!YSU$@$ppFdNs{(xy{}(Pn8L*GandJ4U>dFmCYhk7z{8kAZWTI zW5tT%4Ou-itSV8}5P-?RLNHPdXw280UM5{Cx61no8Cj4L7oN^rG&cs{yEwpqz}rZD zk1~gPgN2p4P5dfnXUoPF@vl*}$k9O-hnB_;{{U_r+)CMQ$_z=Z=cXMCYQ2wymFtWg z&9a@y?;pp!7RaGSvu1MJIrEY}W|#OLuP{bp3N*_*C_UdGKyXfoAw+)g6NJOiQtv@b z;M{SL%uRYn@QIoJmeL^Nwa(EJ_qKB<&8C*dQ^e@bI78$**Q=MgCz;?yizBJSkQhE5 zTjSY_-OKR!<1yG{60&71>Ta(jI%C}_&UDG~q+=6ixwe)#xPEoVw8Jd>c&B^iGA7db znJ(}@<#C2e#R&8)nAdzyRn~e-jOP3^t^+iLT6nyi$Kk>Xy^H6fSI54`Y_t(A}@Vmw%Jj%sUXcBRRc_?eW4(ct>BwMsO*Bhnbnv7n4v(#ID<&W@jx$|+`EkIp5 zL&G`a{ScajBxX|JAmCV3PLHRebZxg2B&ju2T>H1wnByWlP~QIlw_bB1mD3#9wrU#W zBWX*3N{7W630QUp;WN?o-xekFihl!E{7;*VPE^)H$m9rTW+pr{5}uviEN`b2e9f2k z9sHg+`Sry;CPvQ9Ys2fR9&lrkFs{NmOH|W1kEd`wPWks%rV{J0wmqLYqn@K_T>k*Y z!p|*&_Ej~B_Es2S8CAmRsTX884H85xhzz8lv@4T@AAy%UPKd(t#=rDHeZ@b#a!LyU zBsyWymlk1f>@gQGHfu!XxO}|c%Tr9Y$|zOK;Ga0pyuGXy+G(Hf=Qhpab8tgxb)n^L z&l#C-_=foiuWx>ZjLExq)+bG_-5$qWZ&xaX7+e8?Tc2@*nydlBHggg=Scyh(hU_27 zy%Waq8|Qa2PFzlv=?4 z@>~RB`$~dk9<|HUgPXi=$?-<4a=D_j#q+gXIUAYzmh9BfWzH@mokf`Cu9&9Ko%3#N__6=M_wn>Hu_e`z|6OSmC*NzdKg<-H42B97?onJCX8?)WBOai>& zcb}4QrSy8=bGn~APE0C%kP~A*40x~WXcAWo6Y?bR-QBiCf}_%Z*E0vQ43>vj_}{!M zyph=a(M|$)al@`rxHXr9kF$v#qWeK63`#o~%YO9PyaQ)xH<35|E<(u1A*wZGb>}oz z02ve~^?Y#}5CHM9b-^=`RBS z@Zi77q72!M_{V&(9?6o;GtGbRg)*bO_Dn8j^~l;hvB5u+^YP25DjudG_t&wW!ppd3FXG;K|2sOfq+* zoJo5*E^=1{!I^8h!STf@K{WtA5jeO#{^hoi%NiVJDi_==%VH6v<+>S;k_nu*1`AMW8i{%&!>Ib_1Z; zAqOWCWgBf_gw>9IO1^^hlESL0sp4jdTp=#AsO#A8mq8_7&~VE~vvZww$}WSfD)cd% zhYIQ#@r*eE_PE{ln)=G-i5)O(wogkL@IQpNpUMMe^&k6L$%J`kj*6F|!K=vWOTRVQ z+?Z?~xdpd4u7YHW*i29k`bfHan$zB6MOy>n;#|6L&l`@reDryftHUE`rbufQ%nfIJ zaN?$nks|8*ku4k)b5s>Fx&*6pEP07Qch(K}@Pn8($ox-D7!mS7Oav!og9dw?b1WKq z{{Xl1{pVutr>pW$PCE?Z`Xik#eYTU9BrHJ+H%h_xsh0SuWu=oRx+(mlbV`T}4-pzAuO;>+)o_f#MBRt|mpJCQ+K5iL= zo!e~x0OS7fMdjV!U}#Z1SB7e%shwm(dub@)DGIZ|l9KV$9kH5SqIppxKxuJs5r{%j z?WKg-LKJTIQ(}e(ftf@)jK3G-Qk^{7K!Y6hovy=Ilq5~4#9B?u;~RKjh@gicu1E72 zBL%nh7Esl75F>@Qwe1qqLev2O;r+m#ZC>no&XAOoC6L&O?3+iOAhENNxEshXXDdUYvvzXCl6SUhId5C$}l5YP1U&jN%PSbvz zJbanY14V}KrrR($0eBF^VU{W&%nlDL7)xO(>XH6@Q4;`mWsi4Hz80*7;assz$KKvD ziJ|~6=1@Kt4Bf8fQLykB60NUM{LV@1xJs%6Of2{@1w$2^;Mt^HJ#!~-$Q@TREfW&m zaY+b%kPTXLG<;j~aB~c}4pny74I{BLM-6t9S(lMm=@BaRt+BapN`QlVC$cfx7#+>$Y>j1PHSXP)anbqS%?NdNKXZ^g#6I6wn(%<9cvRlyt zv}D}3I%k;%UeG`$G)eBfcIF}IABp3yd6+5^d@|eW3*<4)rzKFoHFW$+b;)bmFJm(0 zlZCPk;vs%Mb<4_fw`=ZKM(@J9>fI4pGrY$b0!BQ^)cOvD&43Tuq=zk^cP)3#3$Q=W zrx@URg~bLPkm6lg$~X12s{II`7rqUZZXt7t(rxs3%AQph>LkFQJ#i~Wy! z0-pmucsf)wyCKutUtBde)a>efZa?x~LST0c8X@0^Z;Q2piSyqojkzG@_osZ;aWK{DbicnH&A_>iSs}5{UdJ1%`Tlgz4}ZK|tIF8PU|?nCCU_bx zUCkD4Yr^*dy$%!7XbZ#|D2gDtXegm(xQW6-bK8`{-MmZ%=H`raA zVdMnE=V!*vf{L6K^a?6V3a0*Rkg|;3uyWWw2VHMR))9FzDyw9fpxIbDEO6bJ`F95; zt!`A_X@}#O3