From 4facc03a64bece341c553a53c92c19a27137c1ab Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 25 Jul 2016 08:50:40 +0200 Subject: [PATCH 001/102] Upload ptheads Win32 DLL --- .gitignore | 2 +- src/external/pthread/lib/pthreadGC2.dll | Bin 0 -> 119888 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 src/external/pthread/lib/pthreadGC2.dll diff --git a/.gitignore b/.gitignore index 8b584cf1a..add60fa17 100644 --- a/.gitignore +++ b/.gitignore @@ -75,4 +75,4 @@ src/libraylib.bc !src/external/glfw3/lib/win32/glfw3.dll !src/external/openal_soft/lib/win32/OpenAL32.dll !src/external/OculusSDK/LibOVR/LibOVRRT32_1.dll -!src/external/pthread/pthreadGC2.dll +!src/external/pthread/lib/pthreadGC2.dll diff --git a/src/external/pthread/lib/pthreadGC2.dll b/src/external/pthread/lib/pthreadGC2.dll new file mode 100644 index 0000000000000000000000000000000000000000..67b9289dfd9f6f1ad12c1d137f4e57ad1a54271c GIT binary patch literal 119888 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

PI35m#66 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 literal 0 HcmV?d00001 From a94b553aff00563fb54fe634e02f59d81d2a1007 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 25 Jul 2016 18:36:43 +0200 Subject: [PATCH 002/102] Updated release headers --- release/android/raylib.h | 10 +- release/html5/raylib.h | 10 +- release/linux/raylib.h | 10 +- release/osx/raylib.h | 915 +++++++++++++++++++++++++++++++++++++++ release/win32/raylib.h | 10 +- 5 files changed, 943 insertions(+), 12 deletions(-) create mode 100644 release/osx/raylib.h diff --git a/release/android/raylib.h b/release/android/raylib.h index 19c677123..fee6aa910 100644 --- a/release/android/raylib.h +++ b/release/android/raylib.h @@ -268,9 +268,13 @@ //---------------------------------------------------------------------------------- #ifndef __cplusplus // Boolean type - #if !defined(_STDBOOL_H) - typedef enum { false, true } bool; - #define _STDBOOL_H + #ifndef __APPLE__ + #if !defined(_STDBOOL_H) + typedef enum { false, true } bool; + #define _STDBOOL_H + #endif + #else + #include #endif #endif diff --git a/release/html5/raylib.h b/release/html5/raylib.h index 19c677123..fee6aa910 100644 --- a/release/html5/raylib.h +++ b/release/html5/raylib.h @@ -268,9 +268,13 @@ //---------------------------------------------------------------------------------- #ifndef __cplusplus // Boolean type - #if !defined(_STDBOOL_H) - typedef enum { false, true } bool; - #define _STDBOOL_H + #ifndef __APPLE__ + #if !defined(_STDBOOL_H) + typedef enum { false, true } bool; + #define _STDBOOL_H + #endif + #else + #include #endif #endif diff --git a/release/linux/raylib.h b/release/linux/raylib.h index 19c677123..fee6aa910 100644 --- a/release/linux/raylib.h +++ b/release/linux/raylib.h @@ -268,9 +268,13 @@ //---------------------------------------------------------------------------------- #ifndef __cplusplus // Boolean type - #if !defined(_STDBOOL_H) - typedef enum { false, true } bool; - #define _STDBOOL_H + #ifndef __APPLE__ + #if !defined(_STDBOOL_H) + typedef enum { false, true } bool; + #define _STDBOOL_H + #endif + #else + #include #endif #endif diff --git a/release/osx/raylib.h b/release/osx/raylib.h new file mode 100644 index 000000000..fee6aa910 --- /dev/null +++ b/release/osx/raylib.h @@ -0,0 +1,915 @@ +/********************************************************************************************** +* +* raylib 1.5.0 (www.raylib.com) +* +* A simple and easy-to-use library to learn videogames programming +* +* Features: +* Library written in plain C code (C99) +* Uses C# PascalCase/camelCase notation +* Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES 2.0) +* Unique OpenGL abstraction layer (usable as standalone module): [rlgl] +* Powerful fonts module with SpriteFonts support (XNA bitmap fonts, AngelCode fonts, TTF) +* Multiple textures support, including compressed formats and mipmaps generation +* Basic 3d support for Shapes, Models, Billboards, Heightmaps and Cubicmaps +* Materials (diffuse, normal, specular) and Lighting (point, directional, spot) support +* Powerful math module for Vector, Matrix and Quaternion operations [raymath] +* Audio loading and playing with streaming support and mixing channels (WAV, OGG, XM, MOD) +* VR stereo rendering support with configurable HMD device parameters +* Multiple platforms support: Windows, Linux, Mac, Android, Raspberry Pi, HTML5 and Oculus Rift CV1 +* Custom color palette for fancy visuals on raywhite background +* Minimal external dependencies (GLFW3, OpenGL, OpenAL) +* +* Used external libs: +* GLFW3 (www.glfw.org) for window/context management and input +* GLAD for OpenGL extensions loading (3.3 Core profile, only PLATFORM_DESKTOP) +* stb_image (Sean Barret) for images loading (JPEG, PNG, BMP, TGA, PSD, GIF, HDR, PIC) +* stb_image_write (Sean Barret) for image writting (PNG) +* stb_vorbis (Sean Barret) for ogg audio loading +* stb_truetype (Sean Barret) for ttf fonts loading +* jar_xm (Joshua Reisenauer) for XM audio module loading +* jar_mod (Joshua Reisenauer) for MOD audio module loading +* OpenAL Soft for audio device/context management +* tinfl for data decompression (DEFLATE algorithm) +* +* Some design decisions: +* 32bit Colors - All defined color are always RGBA (struct Color is 4 byte) +* One custom default font is loaded automatically when InitWindow() +* If using OpenGL 3.3 or ES2, several vertex buffers (VAO/VBO) are created to manage lines-triangles-quads +* If using OpenGL 3.3 or ES2, two default shaders are loaded automatically (internally defined) +* +* -- LICENSE -- +* +* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, +* BSD-like license that allows static linking with closed source software: +* +* Copyright (c) 2013-2016 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYLIB_H +#define RAYLIB_H + +// Choose your platform here or just define it at compile time: -DPLATFORM_DESKTOP +//#define PLATFORM_DESKTOP // Windows, Linux or OSX +//#define PLATFORM_ANDROID // Android device +//#define PLATFORM_RPI // Raspberry Pi +//#define PLATFORM_WEB // HTML5 (emscripten, asm.js) +//#define RLGL_OCULUS_SUPPORT // Oculus Rift CV1 (complementary to PLATFORM_DESKTOP) + +// Security check in case no PLATFORM_* defined +#if !defined(PLATFORM_DESKTOP) && !defined(PLATFORM_ANDROID) && !defined(PLATFORM_RPI) && !defined(PLATFORM_WEB) + #define PLATFORM_DESKTOP +#endif + +#if defined(PLATFORM_ANDROID) + typedef struct android_app; // Define android_app struct (android_native_app_glue.h) +#endif + +//---------------------------------------------------------------------------------- +// Some basic Defines +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846 +#endif + +#define DEG2RAD (PI/180.0f) +#define RAD2DEG (180.0f/PI) + +// raylib Config Flags +#define FLAG_FULLSCREEN_MODE 1 +#define FLAG_SHOW_LOGO 2 +#define FLAG_SHOW_MOUSE_CURSOR 4 +#define FLAG_CENTERED_MODE 8 +#define FLAG_MSAA_4X_HINT 16 +#define FLAG_VSYNC_HINT 32 + +// Keyboard Function Keys +#define KEY_SPACE 32 +#define KEY_ESCAPE 256 +#define KEY_ENTER 257 +#define KEY_BACKSPACE 259 +#define KEY_RIGHT 262 +#define KEY_LEFT 263 +#define KEY_DOWN 264 +#define KEY_UP 265 +#define KEY_F1 290 +#define KEY_F2 291 +#define KEY_F3 292 +#define KEY_F4 293 +#define KEY_F5 294 +#define KEY_F6 295 +#define KEY_F7 296 +#define KEY_F8 297 +#define KEY_F9 298 +#define KEY_F10 299 +#define KEY_F11 300 +#define KEY_F12 301 +#define KEY_LEFT_SHIFT 340 +#define KEY_LEFT_CONTROL 341 +#define KEY_LEFT_ALT 342 +#define KEY_RIGHT_SHIFT 344 +#define KEY_RIGHT_CONTROL 345 +#define KEY_RIGHT_ALT 346 + +// Keyboard Alpha Numeric Keys +#define KEY_ZERO 48 +#define KEY_ONE 49 +#define KEY_TWO 50 +#define KEY_THREE 51 +#define KEY_FOUR 52 +#define KEY_FIVE 53 +#define KEY_SIX 54 +#define KEY_SEVEN 55 +#define KEY_EIGHT 56 +#define KEY_NINE 57 +#define KEY_A 65 +#define KEY_B 66 +#define KEY_C 67 +#define KEY_D 68 +#define KEY_E 69 +#define KEY_F 70 +#define KEY_G 71 +#define KEY_H 72 +#define KEY_I 73 +#define KEY_J 74 +#define KEY_K 75 +#define KEY_L 76 +#define KEY_M 77 +#define KEY_N 78 +#define KEY_O 79 +#define KEY_P 80 +#define KEY_Q 81 +#define KEY_R 82 +#define KEY_S 83 +#define KEY_T 84 +#define KEY_U 85 +#define KEY_V 86 +#define KEY_W 87 +#define KEY_X 88 +#define KEY_Y 89 +#define KEY_Z 90 + +// Mouse Buttons +#define MOUSE_LEFT_BUTTON 0 +#if defined(PLATFORM_WEB) + #define MOUSE_RIGHT_BUTTON 2 + #define MOUSE_MIDDLE_BUTTON 1 +#else + #define MOUSE_RIGHT_BUTTON 1 + #define MOUSE_MIDDLE_BUTTON 2 +#endif + +// Touch points registered +#define MAX_TOUCH_POINTS 2 + +// Gamepad Number +#define GAMEPAD_PLAYER1 0 +#define GAMEPAD_PLAYER2 1 +#define GAMEPAD_PLAYER3 2 // Not supported +#define GAMEPAD_PLAYER4 3 // Not supported + +// Gamepad Buttons +// NOTE: Adjusted for a PS3 USB Controller +#define GAMEPAD_BUTTON_A 2 +#define GAMEPAD_BUTTON_B 1 +#define GAMEPAD_BUTTON_X 3 +#define GAMEPAD_BUTTON_Y 4 +#define GAMEPAD_BUTTON_R1 7 +#define GAMEPAD_BUTTON_R2 5 +#define GAMEPAD_BUTTON_L1 6 +#define GAMEPAD_BUTTON_L2 8 +#define GAMEPAD_BUTTON_SELECT 9 +#define GAMEPAD_BUTTON_START 10 + +// Xbox360 USB Controller Buttons +#define GAMEPAD_XBOX_BUTTON_A 0 +#define GAMEPAD_XBOX_BUTTON_B 1 +#define GAMEPAD_XBOX_BUTTON_X 2 +#define GAMEPAD_XBOX_BUTTON_Y 3 +#define GAMEPAD_XBOX_BUTTON_LB 4 +#define GAMEPAD_XBOX_BUTTON_RB 5 +#define GAMEPAD_XBOX_BUTTON_SELECT 6 +#define GAMEPAD_XBOX_BUTTON_START 7 + +#if defined(PLATFORM_RPI) + #define GAMEPAD_XBOX_AXIS_DPAD_X 7 + #define GAMEPAD_XBOX_AXIS_DPAD_Y 6 + #define GAMEPAD_XBOX_AXIS_RIGHT_X 3 + #define GAMEPAD_XBOX_AXIS_RIGHT_Y 4 + #define GAMEPAD_XBOX_AXIS_LT 2 + #define GAMEPAD_XBOX_AXIS_RT 5 +#else + #define GAMEPAD_XBOX_BUTTON_UP 10 + #define GAMEPAD_XBOX_BUTTON_DOWN 12 + #define GAMEPAD_XBOX_BUTTON_LEFT 13 + #define GAMEPAD_XBOX_BUTTON_RIGHT 11 + #define GAMEPAD_XBOX_AXIS_RIGHT_X 4 + #define GAMEPAD_XBOX_AXIS_RIGHT_Y 3 + #define GAMEPAD_XBOX_AXIS_LT_RT 2 +#endif + +#define GAMEPAD_XBOX_AXIS_LEFT_X 0 +#define GAMEPAD_XBOX_AXIS_LEFT_Y 1 + +// Android Physic Buttons +#define ANDROID_BACK 4 +#define ANDROID_MENU 82 +#define ANDROID_VOLUME_UP 24 +#define ANDROID_VOLUME_DOWN 25 + +// Some Basic Colors +// NOTE: Custom raylib color palette for amazing visuals on WHITE background +#define LIGHTGRAY (Color){ 200, 200, 200, 255 } // Light Gray +#define GRAY (Color){ 130, 130, 130, 255 } // Gray +#define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray +#define YELLOW (Color){ 253, 249, 0, 255 } // Yellow +#define GOLD (Color){ 255, 203, 0, 255 } // Gold +#define ORANGE (Color){ 255, 161, 0, 255 } // Orange +#define PINK (Color){ 255, 109, 194, 255 } // Pink +#define RED (Color){ 230, 41, 55, 255 } // Red +#define MAROON (Color){ 190, 33, 55, 255 } // Maroon +#define GREEN (Color){ 0, 228, 48, 255 } // Green +#define LIME (Color){ 0, 158, 47, 255 } // Lime +#define DARKGREEN (Color){ 0, 117, 44, 255 } // Dark Green +#define SKYBLUE (Color){ 102, 191, 255, 255 } // Sky Blue +#define BLUE (Color){ 0, 121, 241, 255 } // Blue +#define DARKBLUE (Color){ 0, 82, 172, 255 } // Dark Blue +#define PURPLE (Color){ 200, 122, 255, 255 } // Purple +#define VIOLET (Color){ 135, 60, 190, 255 } // Violet +#define DARKPURPLE (Color){ 112, 31, 126, 255 } // Dark Purple +#define BEIGE (Color){ 211, 176, 131, 255 } // Beige +#define BROWN (Color){ 127, 106, 79, 255 } // Brown +#define DARKBROWN (Color){ 76, 63, 47, 255 } // Dark Brown + +#define WHITE (Color){ 255, 255, 255, 255 } // White +#define BLACK (Color){ 0, 0, 0, 255 } // Black +#define BLANK (Color){ 0, 0, 0, 0 } // Blank (Transparent) +#define MAGENTA (Color){ 255, 0, 255, 255 } // Magenta +#define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo) + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#ifndef __cplusplus +// Boolean type + #ifndef __APPLE__ + #if !defined(_STDBOOL_H) + typedef enum { false, true } bool; + #define _STDBOOL_H + #endif + #else + #include + #endif +#endif + +// byte type +typedef unsigned char byte; + +// Vector2 type +typedef struct Vector2 { + float x; + float y; +} Vector2; + +// Vector3 type +typedef struct Vector3 { + float x; + float y; + float z; +} Vector3; + +// Matrix type (OpenGL style 4x4 - right handed, column major) +typedef struct Matrix { + float m0, m4, m8, m12; + float m1, m5, m9, m13; + float m2, m6, m10, m14; + float m3, m7, m11, m15; +} Matrix; + +// Color type, RGBA (32bit) +typedef struct Color { + unsigned char r; + unsigned char g; + unsigned char b; + unsigned char a; +} Color; + +// Rectangle type +typedef struct Rectangle { + int x; + int y; + int width; + int height; +} Rectangle; + +// Image type, bpp always RGBA (32bit) +// NOTE: Data stored in CPU memory (RAM) +typedef struct Image { + void *data; // Image raw data + int width; // Image base width + int height; // Image base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (TextureFormat) +} Image; + +// Texture2D type, bpp always RGBA (32bit) +// NOTE: Data stored in GPU memory +typedef struct Texture2D { + unsigned int id; // OpenGL texture id + int width; // Texture base width + int height; // Texture base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (TextureFormat) +} Texture2D; + +// RenderTexture2D type, for texture rendering +typedef struct RenderTexture2D { + unsigned int id; // Render texture (fbo) id + Texture2D texture; // Color buffer attachment texture + Texture2D depth; // Depth buffer attachment texture +} RenderTexture2D; + +// SpriteFont type, includes texture and charSet array data +typedef struct SpriteFont { + Texture2D texture; // Font texture + int size; // Base size (default chars height) + int numChars; // Number of characters + int *charValues; // Characters values array + Rectangle *charRecs; // Characters rectangles within the texture + Vector2 *charOffsets; // Characters offsets (on drawing) + int *charAdvanceX; // Characters x advance (on drawing) +} SpriteFont; + +// Camera type, defines a camera position/orientation in 3d space +typedef struct Camera { + Vector3 position; // Camera position + Vector3 target; // Camera target it looks-at + Vector3 up; // Camera up vector (rotation over its axis) + float fovy; // Camera field-of-view apperture in Y (degrees) +} Camera; + +// Camera2D type, defines a 2d camera +typedef struct Camera2D { + Vector2 offset; // Camera offset (displacement from target) + Vector2 target; // Camera target (rotation and zoom origin) + float rotation; // Camera rotation in degrees + float zoom; // Camera zoom (scaling), should be 1.0f by default +} Camera2D; + +// Bounding box type +typedef struct BoundingBox { + Vector3 min; // minimum vertex box-corner + Vector3 max; // maximum vertex box-corner +} BoundingBox; + +// Vertex data definning a mesh +typedef struct Mesh { + int vertexCount; // number of vertices stored in arrays + int triangleCount; // number of triangles stored (indexed or not) + float *vertices; // vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *texcoords2; // vertex second texture coordinates (useful for lightmaps) (shader-location = 5) + float *normals; // vertex normals (XYZ - 3 components per vertex) (shader-location = 2) + float *tangents; // vertex tangents (XYZ - 3 components per vertex) (shader-location = 4) + unsigned char *colors; // vertex colors (RGBA - 4 components per vertex) (shader-location = 3) + unsigned short *indices;// vertex indices (in case vertex data comes indexed) + + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int vboId[7]; // OpenGL Vertex Buffer Objects id (7 types of vertex data) +} Mesh; + +// Shader type (generic shader) +typedef struct Shader { + unsigned int id; // Shader program id + + // Vertex attributes locations (default locations) + int vertexLoc; // Vertex attribute location point (default-location = 0) + int texcoordLoc; // Texcoord attribute location point (default-location = 1) + int texcoord2Loc; // Texcoord2 attribute location point (default-location = 5) + int normalLoc; // Normal attribute location point (default-location = 2) + int tangentLoc; // Tangent attribute location point (default-location = 4) + int colorLoc; // Color attibute location point (default-location = 3) + + // Uniform locations + int mvpLoc; // ModelView-Projection matrix uniform location point (vertex shader) + int tintColorLoc; // Diffuse color uniform location point (fragment shader) + + // Texture map locations (generic for any kind of map) + int mapTexture0Loc; // Map texture uniform location point (default-texture-unit = 0) + int mapTexture1Loc; // Map texture uniform location point (default-texture-unit = 1) + int mapTexture2Loc; // Map texture uniform location point (default-texture-unit = 2) +} Shader; + +// Material type +typedef struct Material { + Shader shader; // Standard shader (supports 3 map textures) + + Texture2D texDiffuse; // Diffuse texture (binded to shader mapTexture0Loc) + Texture2D texNormal; // Normal texture (binded to shader mapTexture1Loc) + Texture2D texSpecular; // Specular texture (binded to shader mapTexture2Loc) + + Color colDiffuse; // Diffuse color + Color colAmbient; // Ambient color + Color colSpecular; // Specular color + + float glossiness; // Glossiness level (Ranges from 0 to 1000) +} Material; + +// Model type +typedef struct Model { + Mesh mesh; // Vertex data buffers (RAM and VRAM) + Matrix transform; // Local transform matrix + Material material; // Shader and textures data +} Model; + +// Light type +typedef struct LightData { + unsigned int id; // Light unique id + bool enabled; // Light enabled + int type; // Light type: LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT + + Vector3 position; // Light position + Vector3 target; // Light target: LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target) + float radius; // Light attenuation radius light intensity reduced with distance (world distance) + + Color diffuse; // Light diffuse color + float intensity; // Light intensity level + + float coneAngle; // Light cone max angle: LIGHT_SPOT +} LightData, *Light; + +// Light types +typedef enum { LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT } LightType; + +// Ray type (useful for raycast) +typedef struct Ray { + Vector3 position; // Ray position (origin) + Vector3 direction; // Ray direction +} Ray; + +// Sound source type +typedef struct Sound { + unsigned int source; // Sound audio source id + unsigned int buffer; // Sound audio buffer id +} Sound; + +// Wave type, defines audio wave data +typedef struct Wave { + void *data; // Buffer data pointer + unsigned int dataSize; // Data size in bytes + unsigned int sampleRate; // Samples per second to be played + short bitsPerSample; // Sample size in bits + short channels; +} Wave; + +// Texture formats +// NOTE: Support depends on OpenGL version and platform +typedef enum { + UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + UNCOMPRESSED_GRAY_ALPHA, // 16 bpp (2 channels) + UNCOMPRESSED_R5G6B5, // 16 bpp + UNCOMPRESSED_R8G8B8, // 24 bpp + UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + UNCOMPRESSED_R8G8B8A8, // 32 bpp + COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + COMPRESSED_DXT3_RGBA, // 8 bpp + COMPRESSED_DXT5_RGBA, // 8 bpp + COMPRESSED_ETC1_RGB, // 4 bpp + COMPRESSED_ETC2_RGB, // 4 bpp + COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + COMPRESSED_PVRT_RGB, // 4 bpp + COMPRESSED_PVRT_RGBA, // 4 bpp + COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} TextureFormat; + +// Color blending modes (pre-defined) +typedef enum { BLEND_ALPHA = 0, BLEND_ADDITIVE, BLEND_MULTIPLIED } BlendMode; + +// Gestures type +// NOTE: It could be used as flags to enable only some gestures +typedef enum { + GESTURE_NONE = 0, + GESTURE_TAP = 1, + GESTURE_DOUBLETAP = 2, + GESTURE_HOLD = 4, + GESTURE_DRAG = 8, + GESTURE_SWIPE_RIGHT = 16, + GESTURE_SWIPE_LEFT = 32, + GESTURE_SWIPE_UP = 64, + GESTURE_SWIPE_DOWN = 128, + GESTURE_PINCH_IN = 256, + GESTURE_PINCH_OUT = 512 +} Gestures; + +// Touch action (fingers or mouse) +typedef enum { TOUCH_UP, TOUCH_DOWN, TOUCH_MOVE } TouchAction; + +// Gesture events +// NOTE: MAX_TOUCH_POINTS fixed to 2 +typedef struct GestureEvent { + int touchAction; + int pointCount; + int pointerId[MAX_TOUCH_POINTS]; + Vector2 position[MAX_TOUCH_POINTS]; +} GestureEvent; + +// Camera system modes +typedef enum { CAMERA_CUSTOM = 0, CAMERA_FREE, CAMERA_ORBITAL, CAMERA_FIRST_PERSON, CAMERA_THIRD_PERSON } CameraMode; + +// Head Mounted Display devices +typedef enum { + HMD_DEFAULT_DEVICE = 0, + HMD_OCULUS_RIFT_DK2, + HMD_OCULUS_RIFT_CV1, + HMD_VALVE_HTC_VIVE, + HMD_SAMSUNG_GEAR_VR, + HMD_GOOGLE_CARDBOARD, + HMD_SONY_PLAYSTATION_VR, + HMD_RAZER_OSVR, + HMD_FOVE_VR, +} VrDevice; + +#ifdef __cplusplus +extern "C" { // Prevents name mangling of functions +#endif + +//------------------------------------------------------------------------------------ +// Global Variables Definition +//------------------------------------------------------------------------------------ +// It's lonely here... + +//------------------------------------------------------------------------------------ +// Window and Graphics Device Functions (Module: core) +//------------------------------------------------------------------------------------ +#if defined(PLATFORM_ANDROID) +void InitWindow(int width, int height, struct android_app *state); // Init Android Activity and OpenGL Graphics +#elif defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) || defined(PLATFORM_WEB) +void InitWindow(int width, int height, const char *title); // Initialize Window and OpenGL Graphics +#endif + +void CloseWindow(void); // Close Window and Terminate Context +bool WindowShouldClose(void); // Detect if KEY_ESCAPE pressed or Close icon pressed +bool IsWindowMinimized(void); // Detect if window has been minimized (or lost focus) +void ToggleFullscreen(void); // Fullscreen toggle (only PLATFORM_DESKTOP) +int GetScreenWidth(void); // Get current screen width +int GetScreenHeight(void); // Get current screen height + +void ShowCursor(void); // Shows cursor +void HideCursor(void); // Hides cursor +bool IsCursorHidden(void); // Returns true if cursor is not visible +void EnableCursor(void); // Enables cursor +void DisableCursor(void); // Disables cursor + +void ClearBackground(Color color); // Sets Background Color +void BeginDrawing(void); // Setup drawing canvas to start drawing +void EndDrawing(void); // End canvas drawing and Swap Buffers (Double Buffering) + +void Begin2dMode(Camera2D camera); // Initialize 2D mode with custom camera +void End2dMode(void); // Ends 2D mode custom camera usage +void Begin3dMode(Camera camera); // Initializes 3D mode for drawing (Camera setup) +void End3dMode(void); // Ends 3D mode and returns to default 2D orthographic mode +void BeginTextureMode(RenderTexture2D target); // Initializes render texture for drawing +void EndTextureMode(void); // Ends drawing to render texture + +Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Returns a ray trace from mouse position +Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Returns the screen space position from a 3d world space position +Matrix GetCameraMatrix(Camera camera); // Returns camera transform matrix (view matrix) + +void SetTargetFPS(int fps); // Set target FPS (maximum) +float GetFPS(void); // Returns current FPS +float GetFrameTime(void); // Returns time in seconds for one frame + +Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value +int GetHexValue(Color color); // Returns hexadecimal value for a Color +float *ColorToFloat(Color color); // Converts Color to float array and normalizes +float *VectorToFloat(Vector3 vec); // Converts Vector3 to float array +float *MatrixToFloat(Matrix mat); // Converts Matrix to float array + +int GetRandomValue(int min, int max); // Returns a random value between min and max (both included) +Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f + +void SetConfigFlags(char flags); // Setup some window configuration flags +void ShowLogo(void); // Activates raylib logo at startup (can be done with flags) + +bool IsFileDropped(void); // Check if a file have been dropped into window +char **GetDroppedFiles(int *count); // Retrieve dropped files into window +void ClearDroppedFiles(void); // Clear dropped files paths buffer + +void StorageSaveValue(int position, int value); // Storage save integer value (to defined position) +int StorageLoadValue(int position); // Storage load integer value (from defined position) + +//------------------------------------------------------------------------------------ +// Input Handling Functions (Module: core) +//------------------------------------------------------------------------------------ +#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) || defined(PLATFORM_WEB) +bool IsKeyPressed(int key); // Detect if a key has been pressed once +bool IsKeyDown(int key); // Detect if a key is being pressed +bool IsKeyReleased(int key); // Detect if a key has been released once +bool IsKeyUp(int key); // Detect if a key is NOT being pressed +int GetKeyPressed(void); // Get latest key pressed +void SetExitKey(int key); // Set a custom key to exit program (default is ESC) + +bool IsGamepadAvailable(int gamepad); // Detect if a gamepad is available +float GetGamepadAxisMovement(int gamepad, int axis); // Return axis movement value for a gamepad axis +bool IsGamepadButtonPressed(int gamepad, int button); // Detect if a gamepad button has been pressed once +bool IsGamepadButtonDown(int gamepad, int button); // Detect if a gamepad button is being pressed +bool IsGamepadButtonReleased(int gamepad, int button); // Detect if a gamepad button has been released once +bool IsGamepadButtonUp(int gamepad, int button); // Detect if a gamepad button is NOT being pressed +#endif + +bool IsMouseButtonPressed(int button); // Detect if a mouse button has been pressed once +bool IsMouseButtonDown(int button); // Detect if a mouse button is being pressed +bool IsMouseButtonReleased(int button); // Detect if a mouse button has been released once +bool IsMouseButtonUp(int button); // Detect if a mouse button is NOT being pressed +int GetMouseX(void); // Returns mouse position X +int GetMouseY(void); // Returns mouse position Y +Vector2 GetMousePosition(void); // Returns mouse position XY +void SetMousePosition(Vector2 position); // Set mouse position XY +int GetMouseWheelMove(void); // Returns mouse wheel movement Y + +int GetTouchX(void); // Returns touch position X for touch point 0 (relative to screen size) +int GetTouchY(void); // Returns touch position Y for touch point 0 (relative to screen size) +Vector2 GetTouchPosition(int index); // Returns touch position XY for a touch point index (relative to screen size) + +#if defined(PLATFORM_ANDROID) +bool IsButtonPressed(int button); // Detect if an android physic button has been pressed +bool IsButtonDown(int button); // Detect if an android physic button is being pressed +bool IsButtonReleased(int button); // Detect if an android physic button has been released +#endif + +//------------------------------------------------------------------------------------ +// Gestures and Touch Handling Functions (Module: gestures) +//------------------------------------------------------------------------------------ +void SetGesturesEnabled(unsigned int gestureFlags); // Enable a set of gestures using flags +bool IsGestureDetected(int gesture); // Check if a gesture have been detected +void ProcessGestureEvent(GestureEvent event); // Process gesture event and translate it into gestures +void UpdateGestures(void); // Update gestures detected (called automatically in PollInputEvents()) + +int GetTouchPointsCount(void); // Get touch points count +int GetGestureDetected(void); // Get latest detected gesture +float GetGestureHoldDuration(void); // Get gesture hold time in milliseconds +Vector2 GetGestureDragVector(void); // Get gesture drag vector +float GetGestureDragAngle(void); // Get gesture drag angle +Vector2 GetGesturePinchVector(void); // Get gesture pinch delta +float GetGesturePinchAngle(void); // Get gesture pinch angle + +//------------------------------------------------------------------------------------ +// Camera System Functions (Module: camera) +//------------------------------------------------------------------------------------ +void SetCameraMode(int mode); // Set camera mode (multiple camera modes available) +void UpdateCamera(Camera *camera); // Update camera (player position is ignored) +void UpdateCameraPlayer(Camera *camera, Vector3 *position); // Update camera and player position (1st person and 3rd person cameras) + +void SetCameraPosition(Vector3 position); // Set internal camera position +void SetCameraTarget(Vector3 target); // Set internal camera target +void SetCameraFovy(float fovy); // Set internal camera field-of-view-y + +void SetCameraPanControl(int panKey); // Set camera pan key to combine with mouse movement (free camera) +void SetCameraAltControl(int altKey); // Set camera alt key to combine with mouse movement (free camera) +void SetCameraSmoothZoomControl(int szKey); // Set camera smooth zoom key to combine with mouse (free camera) + +void SetCameraMoveControls(int frontKey, int backKey, + int leftKey, int rightKey, + int upKey, int downKey); // Set camera move controls (1st person and 3rd person cameras) +void SetCameraMouseSensitivity(float sensitivity); // Set camera mouse sensitivity (1st person and 3rd person cameras) + +//------------------------------------------------------------------------------------ +// Basic Shapes Drawing Functions (Module: shapes) +//------------------------------------------------------------------------------------ +void DrawPixel(int posX, int posY, Color color); // Draw a pixel +void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version) +void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line +void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (Vector version) +void DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle +void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2); // Draw a gradient-filled circle +void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) +void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline +void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle +void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle +void DrawRectangleGradient(int posX, int posY, int width, int height, Color color1, Color color2); // Draw a gradient-filled rectangle +void DrawRectangleV(Vector2 position, Vector2 size, Color color); // Draw a color-filled rectangle (Vector version) +void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline +void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle +void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline +void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a regular polygon (Vector version) +void DrawPolyEx(Vector2 *points, int numPoints, Color color); // Draw a closed polygon defined by points +void DrawPolyExLines(Vector2 *points, int numPoints, Color color); // Draw polygon lines + +bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles +bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles +bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle +Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision +bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle +bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle +bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle + +//------------------------------------------------------------------------------------ +// Texture Loading and Drawing Functions (Module: textures) +//------------------------------------------------------------------------------------ +Image LoadImage(const char *fileName); // Load an image into CPU memory (RAM) +Image LoadImageEx(Color *pixels, int width, int height); // Load image data from Color array data (RGBA - 32bit) +Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize); // Load image data from RAW file +Image LoadImageFromRES(const char *rresName, int resId); // Load an image from rRES file (raylib Resource) +Texture2D LoadTexture(const char *fileName); // Load an image as texture into GPU memory +Texture2D LoadTextureEx(void *data, int width, int height, int textureFormat); // Load a texture from raw data into GPU memory +Texture2D LoadTextureFromRES(const char *rresName, int resId); // Load an image as texture from rRES file (raylib Resource) +Texture2D LoadTextureFromImage(Image image); // Load a texture from image data +RenderTexture2D LoadRenderTexture(int width, int height); // Load a texture to be used for rendering +void UnloadImage(Image image); // Unload image from CPU memory (RAM) +void UnloadTexture(Texture2D texture); // Unload texture from GPU memory +void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory +Color *GetImageData(Image image); // Get pixel data from image as a Color struct array +Image GetTextureData(Texture2D texture); // Get pixel data from GPU texture and return an Image +void ImageToPOT(Image *image, Color fillColor); // Convert image to POT (power-of-two) +void ImageFormat(Image *image, int newFormat); // Convert image data to desired format +void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering) +Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) +void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle +void ImageResize(Image *image, int newWidth, int newHeight); // Resize and image (bilinear filtering) +void ImageResizeNN(Image *image,int newWidth,int newHeight); // Resize and image (Nearest-Neighbor scaling algorithm) +Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font) +Image ImageTextEx(SpriteFont font, const char *text, int fontSize, int spacing, Color tint); // Create an image from text (custom sprite font) +void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec); // Draw a source image within a destination image +void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color); // Draw text (default font) within an image (destination) +void ImageDrawTextEx(Image *dst, Vector2 position, SpriteFont font, const char *text, int fontSize, int spacing, Color color); // Draw text (custom sprite font) within an image (destination) +void ImageFlipVertical(Image *image); // Flip image vertically +void ImageFlipHorizontal(Image *image); // Flip image horizontally +void ImageColorTint(Image *image, Color color); // Modify image color: tint +void ImageColorInvert(Image *image); // Modify image color: invert +void ImageColorGrayscale(Image *image); // Modify image color: grayscale +void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) +void ImageColorBrightness(Image *image, int brightness); // Modify image color: brightness (-255 to 255) +void GenTextureMipmaps(Texture2D texture); // Generate GPU mipmaps for a texture +void UpdateTexture(Texture2D texture, void *pixels); // Update GPU texture with new data + +void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D +void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 +void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters +void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle +void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, Vector2 origin, // Draw a part of a texture defined by a rectangle with 'pro' parameters + float rotation, Color tint); + +//------------------------------------------------------------------------------------ +// Font Loading and Text Drawing Functions (Module: text) +//------------------------------------------------------------------------------------ +SpriteFont GetDefaultFont(void); // Get the default SpriteFont +SpriteFont LoadSpriteFont(const char *fileName); // Load a SpriteFont image into GPU memory +void UnloadSpriteFont(SpriteFont spriteFont); // Unload SpriteFont from GPU memory + +void DrawText(const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) +void DrawTextEx(SpriteFont spriteFont, const char* text, Vector2 position, // Draw text using SpriteFont and additional parameters + int fontSize, int spacing, Color tint); +int MeasureText(const char *text, int fontSize); // Measure string width for default font +Vector2 MeasureTextEx(SpriteFont spriteFont, const char *text, int fontSize, int spacing); // Measure string size for SpriteFont + +void DrawFPS(int posX, int posY); // Shows current FPS on top-left corner +const char *FormatText(const char *text, ...); // Formatting of text with variables to 'embed' +const char *SubText(const char *text, int position, int length); // Get a piece of a text string + +//------------------------------------------------------------------------------------ +// Basic 3d Shapes Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ +void DrawCube(Vector3 position, float width, float height, float lenght, Color color); // Draw cube +void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version) +void DrawCubeWires(Vector3 position, float width, float height, float lenght, Color color); // Draw cube wires +void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float height, float lenght, Color color); // Draw cube textured +void DrawSphere(Vector3 centerPos, float radius, Color color); // Draw sphere +void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters +void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires +void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone +void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires +void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ +void DrawRay(Ray ray, Color color); // Draw a ray line +void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0)) +void DrawGizmo(Vector3 position); // Draw simple gizmo +void DrawLight(Light light); // Draw light in 3D world +void Draw3DLine(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space +void Draw3DCircle(Vector3 center, float radius, float rotationAngle, Vector3 rotation, Color color); // Draw a circle in 3D world space +//DrawTorus(), DrawTeapot() are useless... + +//------------------------------------------------------------------------------------ +// Model 3d Loading and Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ +Model LoadModel(const char *fileName); // Load a 3d model (.OBJ) +Model LoadModelEx(Mesh data, bool dynamic); // Load a 3d model (from mesh data) +Model LoadModelFromRES(const char *rresName, int resId); // Load a 3d model from rRES file (raylib Resource) +Model LoadHeightmap(Image heightmap, Vector3 size); // Load a heightmap image as a 3d model +Model LoadCubicmap(Image cubicmap); // Load a map image as a 3d model (cubes based) +void UnloadModel(Model model); // Unload 3d model from memory + +Material LoadMaterial(const char *fileName); // Load material data (from file) +Material LoadDefaultMaterial(void); // Load default material (uses default models shader) +Material LoadStandardMaterial(void); // Load standard material (uses material attributes and lighting shader) +void UnloadMaterial(Material material); // Unload material textures from VRAM + +void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) +void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters +void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set) +void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters +void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) + +void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint); // Draw a billboard texture +void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle sourceRec, Vector3 center, float size, Color tint); // Draw a billboard texture defined by sourceRec + +BoundingBox CalculateBoundingBox(Mesh mesh); // Calculate mesh bounding box limits +bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, float radiusB); // Detect collision between two spheres +bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Detect collision between two bounding boxes +bool CheckCollisionBoxSphere(BoundingBox box, Vector3 centerSphere, float radiusSphere); // Detect collision between box and sphere +bool CheckCollisionRaySphere(Ray ray, Vector3 spherePosition, float sphereRadius); // Detect collision between ray and sphere +bool CheckCollisionRaySphereEx(Ray ray, Vector3 spherePosition, float sphereRadius, Vector3 *collisionPoint); // Detect collision between ray and sphere with extended parameters and collision point detection +bool CheckCollisionRayBox(Ray ray, BoundingBox box); // Detect collision between ray and box +Vector3 ResolveCollisionCubicmap(Image cubicmap, Vector3 mapPosition, Vector3 *playerPosition, float radius); // Detect collision of player radius with cubicmap + // NOTE: Return the normal vector of the impacted surface +//------------------------------------------------------------------------------------ +// Shaders System Functions (Module: rlgl) +// NOTE: This functions are useless when using OpenGL 1.1 +//------------------------------------------------------------------------------------ +Shader LoadShader(char *vsFileName, char *fsFileName); // Load a custom shader and bind default locations +void UnloadShader(Shader shader); // Unload a custom shader from memory + +Shader GetDefaultShader(void); // Get default shader +Shader GetStandardShader(void); // Get standard shader +Texture2D GetDefaultTexture(void); // Get default texture + +int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location +void SetShaderValue(Shader shader, int uniformLoc, float *value, int size); // Set shader uniform value (float) +void SetShaderValuei(Shader shader, int uniformLoc, int *value, int size); // Set shader uniform value (int) +void SetShaderValueMatrix(Shader shader, int uniformLoc, Matrix mat); // Set shader uniform value (matrix 4x4) + +void SetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) +void SetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) + +void BeginShaderMode(Shader shader); // Begin custom shader drawing +void EndShaderMode(void); // End custom shader drawing (use default shader) +void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied) +void EndBlendMode(void); // End blending mode (reset to default: alpha blending) + +Light CreateLight(int type, Vector3 position, Color diffuse); // Create a new light, initialize it and add to pool +void DestroyLight(Light light); // Destroy a light and take it out of the list + +//------------------------------------------------------------------------------------ +// VR experience Functions (Module: rlgl) +// NOTE: This functions are useless when using OpenGL 1.1 +//------------------------------------------------------------------------------------ +void InitVrDevice(int vdDevice); // Init VR device +void CloseVrDevice(void); // Close VR device +void UpdateVrTracking(void); // Update VR tracking (position and orientation) +void BeginVrDrawing(void); // Begin VR drawing configuration +void EndVrDrawing(void); // End VR drawing process (and desktop mirror) +bool IsVrDeviceReady(void); // Detect if VR device (or simulator) is ready +void ToggleVrMode(void); // Enable/Disable VR experience (device or simulator) + +//------------------------------------------------------------------------------------ +// Audio Loading and Playing Functions (Module: audio) +//------------------------------------------------------------------------------------ +void InitAudioDevice(void); // Initialize audio device and context +void CloseAudioDevice(void); // Close the audio device and context (and music stream) +bool IsAudioDeviceReady(void); // True if call to InitAudioDevice() was successful and CloseAudioDevice() has not been called yet + +Sound LoadSound(char *fileName); // Load sound to memory +Sound LoadSoundFromWave(Wave wave); // Load sound to memory from wave data +Sound LoadSoundFromRES(const char *rresName, int resId); // Load sound to memory from rRES file (raylib Resource) +void UnloadSound(Sound sound); // Unload sound +void PlaySound(Sound sound); // Play a sound +void PauseSound(Sound sound); // Pause a sound +void StopSound(Sound sound); // Stop playing a sound +bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing +void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) +void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) + +int PlayMusicStream(int index, char *fileName); // Start music playing (open stream) +void UpdateMusicStream(int index); // Updates buffers for music streaming +void StopMusicStream(int index); // Stop music playing (close stream) +void PauseMusicStream(int index); // Pause music playing +void ResumeMusicStream(int index); // Resume playing paused music +bool IsMusicPlaying(int index); // Check if music is playing +void SetMusicVolume(int index, float volume); // Set volume for music (1.0 is max level) +void SetMusicPitch(int index, float pitch); // Set pitch for a music (1.0 is base level) +float GetMusicTimeLength(int index); // Get current music time length (in seconds) +float GetMusicTimePlayed(int index); // Get current music time played (in seconds) +int GetMusicStreamCount(void); // Get number of streams loaded + +#ifdef __cplusplus +} +#endif + +#endif // RAYLIB_H diff --git a/release/win32/raylib.h b/release/win32/raylib.h index 19c677123..fee6aa910 100644 --- a/release/win32/raylib.h +++ b/release/win32/raylib.h @@ -268,9 +268,13 @@ //---------------------------------------------------------------------------------- #ifndef __cplusplus // Boolean type - #if !defined(_STDBOOL_H) - typedef enum { false, true } bool; - #define _STDBOOL_H + #ifndef __APPLE__ + #if !defined(_STDBOOL_H) + typedef enum { false, true } bool; + #define _STDBOOL_H + #endif + #else + #include #endif #endif From 020601092e1dd873fbf067743ffaf9214c45341a Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 25 Jul 2016 18:36:58 +0200 Subject: [PATCH 003/102] Added release version for RaspberryPi --- release/rpi/libraylib.a | Bin 0 -> 433560 bytes release/rpi/raylib.h | 915 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 915 insertions(+) create mode 100644 release/rpi/libraylib.a create mode 100644 release/rpi/raylib.h diff --git a/release/rpi/libraylib.a b/release/rpi/libraylib.a new file mode 100644 index 0000000000000000000000000000000000000000..522e02bd506fce0cc6de475ed26e3b2dbb345f41 GIT binary patch literal 433560 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 IU!33n0ELe9ZU6uP literal 0 HcmV?d00001 diff --git a/release/rpi/raylib.h b/release/rpi/raylib.h new file mode 100644 index 000000000..fee6aa910 --- /dev/null +++ b/release/rpi/raylib.h @@ -0,0 +1,915 @@ +/********************************************************************************************** +* +* raylib 1.5.0 (www.raylib.com) +* +* A simple and easy-to-use library to learn videogames programming +* +* Features: +* Library written in plain C code (C99) +* Uses C# PascalCase/camelCase notation +* Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES 2.0) +* Unique OpenGL abstraction layer (usable as standalone module): [rlgl] +* Powerful fonts module with SpriteFonts support (XNA bitmap fonts, AngelCode fonts, TTF) +* Multiple textures support, including compressed formats and mipmaps generation +* Basic 3d support for Shapes, Models, Billboards, Heightmaps and Cubicmaps +* Materials (diffuse, normal, specular) and Lighting (point, directional, spot) support +* Powerful math module for Vector, Matrix and Quaternion operations [raymath] +* Audio loading and playing with streaming support and mixing channels (WAV, OGG, XM, MOD) +* VR stereo rendering support with configurable HMD device parameters +* Multiple platforms support: Windows, Linux, Mac, Android, Raspberry Pi, HTML5 and Oculus Rift CV1 +* Custom color palette for fancy visuals on raywhite background +* Minimal external dependencies (GLFW3, OpenGL, OpenAL) +* +* Used external libs: +* GLFW3 (www.glfw.org) for window/context management and input +* GLAD for OpenGL extensions loading (3.3 Core profile, only PLATFORM_DESKTOP) +* stb_image (Sean Barret) for images loading (JPEG, PNG, BMP, TGA, PSD, GIF, HDR, PIC) +* stb_image_write (Sean Barret) for image writting (PNG) +* stb_vorbis (Sean Barret) for ogg audio loading +* stb_truetype (Sean Barret) for ttf fonts loading +* jar_xm (Joshua Reisenauer) for XM audio module loading +* jar_mod (Joshua Reisenauer) for MOD audio module loading +* OpenAL Soft for audio device/context management +* tinfl for data decompression (DEFLATE algorithm) +* +* Some design decisions: +* 32bit Colors - All defined color are always RGBA (struct Color is 4 byte) +* One custom default font is loaded automatically when InitWindow() +* If using OpenGL 3.3 or ES2, several vertex buffers (VAO/VBO) are created to manage lines-triangles-quads +* If using OpenGL 3.3 or ES2, two default shaders are loaded automatically (internally defined) +* +* -- LICENSE -- +* +* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, +* BSD-like license that allows static linking with closed source software: +* +* Copyright (c) 2013-2016 Ramon Santamaria (@raysan5) +* +* This software is provided "as-is", without any express or implied warranty. In no event +* will the authors be held liable for any damages arising from the use of this software. +* +* Permission is granted to anyone to use this software for any purpose, including commercial +* applications, and to alter it and redistribute it freely, subject to the following restrictions: +* +* 1. The origin of this software must not be misrepresented; you must not claim that you +* wrote the original software. If you use this software in a product, an acknowledgment +* in the product documentation would be appreciated but is not required. +* +* 2. Altered source versions must be plainly marked as such, and must not be misrepresented +* as being the original software. +* +* 3. This notice may not be removed or altered from any source distribution. +* +**********************************************************************************************/ + +#ifndef RAYLIB_H +#define RAYLIB_H + +// Choose your platform here or just define it at compile time: -DPLATFORM_DESKTOP +//#define PLATFORM_DESKTOP // Windows, Linux or OSX +//#define PLATFORM_ANDROID // Android device +//#define PLATFORM_RPI // Raspberry Pi +//#define PLATFORM_WEB // HTML5 (emscripten, asm.js) +//#define RLGL_OCULUS_SUPPORT // Oculus Rift CV1 (complementary to PLATFORM_DESKTOP) + +// Security check in case no PLATFORM_* defined +#if !defined(PLATFORM_DESKTOP) && !defined(PLATFORM_ANDROID) && !defined(PLATFORM_RPI) && !defined(PLATFORM_WEB) + #define PLATFORM_DESKTOP +#endif + +#if defined(PLATFORM_ANDROID) + typedef struct android_app; // Define android_app struct (android_native_app_glue.h) +#endif + +//---------------------------------------------------------------------------------- +// Some basic Defines +//---------------------------------------------------------------------------------- +#ifndef PI + #define PI 3.14159265358979323846 +#endif + +#define DEG2RAD (PI/180.0f) +#define RAD2DEG (180.0f/PI) + +// raylib Config Flags +#define FLAG_FULLSCREEN_MODE 1 +#define FLAG_SHOW_LOGO 2 +#define FLAG_SHOW_MOUSE_CURSOR 4 +#define FLAG_CENTERED_MODE 8 +#define FLAG_MSAA_4X_HINT 16 +#define FLAG_VSYNC_HINT 32 + +// Keyboard Function Keys +#define KEY_SPACE 32 +#define KEY_ESCAPE 256 +#define KEY_ENTER 257 +#define KEY_BACKSPACE 259 +#define KEY_RIGHT 262 +#define KEY_LEFT 263 +#define KEY_DOWN 264 +#define KEY_UP 265 +#define KEY_F1 290 +#define KEY_F2 291 +#define KEY_F3 292 +#define KEY_F4 293 +#define KEY_F5 294 +#define KEY_F6 295 +#define KEY_F7 296 +#define KEY_F8 297 +#define KEY_F9 298 +#define KEY_F10 299 +#define KEY_F11 300 +#define KEY_F12 301 +#define KEY_LEFT_SHIFT 340 +#define KEY_LEFT_CONTROL 341 +#define KEY_LEFT_ALT 342 +#define KEY_RIGHT_SHIFT 344 +#define KEY_RIGHT_CONTROL 345 +#define KEY_RIGHT_ALT 346 + +// Keyboard Alpha Numeric Keys +#define KEY_ZERO 48 +#define KEY_ONE 49 +#define KEY_TWO 50 +#define KEY_THREE 51 +#define KEY_FOUR 52 +#define KEY_FIVE 53 +#define KEY_SIX 54 +#define KEY_SEVEN 55 +#define KEY_EIGHT 56 +#define KEY_NINE 57 +#define KEY_A 65 +#define KEY_B 66 +#define KEY_C 67 +#define KEY_D 68 +#define KEY_E 69 +#define KEY_F 70 +#define KEY_G 71 +#define KEY_H 72 +#define KEY_I 73 +#define KEY_J 74 +#define KEY_K 75 +#define KEY_L 76 +#define KEY_M 77 +#define KEY_N 78 +#define KEY_O 79 +#define KEY_P 80 +#define KEY_Q 81 +#define KEY_R 82 +#define KEY_S 83 +#define KEY_T 84 +#define KEY_U 85 +#define KEY_V 86 +#define KEY_W 87 +#define KEY_X 88 +#define KEY_Y 89 +#define KEY_Z 90 + +// Mouse Buttons +#define MOUSE_LEFT_BUTTON 0 +#if defined(PLATFORM_WEB) + #define MOUSE_RIGHT_BUTTON 2 + #define MOUSE_MIDDLE_BUTTON 1 +#else + #define MOUSE_RIGHT_BUTTON 1 + #define MOUSE_MIDDLE_BUTTON 2 +#endif + +// Touch points registered +#define MAX_TOUCH_POINTS 2 + +// Gamepad Number +#define GAMEPAD_PLAYER1 0 +#define GAMEPAD_PLAYER2 1 +#define GAMEPAD_PLAYER3 2 // Not supported +#define GAMEPAD_PLAYER4 3 // Not supported + +// Gamepad Buttons +// NOTE: Adjusted for a PS3 USB Controller +#define GAMEPAD_BUTTON_A 2 +#define GAMEPAD_BUTTON_B 1 +#define GAMEPAD_BUTTON_X 3 +#define GAMEPAD_BUTTON_Y 4 +#define GAMEPAD_BUTTON_R1 7 +#define GAMEPAD_BUTTON_R2 5 +#define GAMEPAD_BUTTON_L1 6 +#define GAMEPAD_BUTTON_L2 8 +#define GAMEPAD_BUTTON_SELECT 9 +#define GAMEPAD_BUTTON_START 10 + +// Xbox360 USB Controller Buttons +#define GAMEPAD_XBOX_BUTTON_A 0 +#define GAMEPAD_XBOX_BUTTON_B 1 +#define GAMEPAD_XBOX_BUTTON_X 2 +#define GAMEPAD_XBOX_BUTTON_Y 3 +#define GAMEPAD_XBOX_BUTTON_LB 4 +#define GAMEPAD_XBOX_BUTTON_RB 5 +#define GAMEPAD_XBOX_BUTTON_SELECT 6 +#define GAMEPAD_XBOX_BUTTON_START 7 + +#if defined(PLATFORM_RPI) + #define GAMEPAD_XBOX_AXIS_DPAD_X 7 + #define GAMEPAD_XBOX_AXIS_DPAD_Y 6 + #define GAMEPAD_XBOX_AXIS_RIGHT_X 3 + #define GAMEPAD_XBOX_AXIS_RIGHT_Y 4 + #define GAMEPAD_XBOX_AXIS_LT 2 + #define GAMEPAD_XBOX_AXIS_RT 5 +#else + #define GAMEPAD_XBOX_BUTTON_UP 10 + #define GAMEPAD_XBOX_BUTTON_DOWN 12 + #define GAMEPAD_XBOX_BUTTON_LEFT 13 + #define GAMEPAD_XBOX_BUTTON_RIGHT 11 + #define GAMEPAD_XBOX_AXIS_RIGHT_X 4 + #define GAMEPAD_XBOX_AXIS_RIGHT_Y 3 + #define GAMEPAD_XBOX_AXIS_LT_RT 2 +#endif + +#define GAMEPAD_XBOX_AXIS_LEFT_X 0 +#define GAMEPAD_XBOX_AXIS_LEFT_Y 1 + +// Android Physic Buttons +#define ANDROID_BACK 4 +#define ANDROID_MENU 82 +#define ANDROID_VOLUME_UP 24 +#define ANDROID_VOLUME_DOWN 25 + +// Some Basic Colors +// NOTE: Custom raylib color palette for amazing visuals on WHITE background +#define LIGHTGRAY (Color){ 200, 200, 200, 255 } // Light Gray +#define GRAY (Color){ 130, 130, 130, 255 } // Gray +#define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray +#define YELLOW (Color){ 253, 249, 0, 255 } // Yellow +#define GOLD (Color){ 255, 203, 0, 255 } // Gold +#define ORANGE (Color){ 255, 161, 0, 255 } // Orange +#define PINK (Color){ 255, 109, 194, 255 } // Pink +#define RED (Color){ 230, 41, 55, 255 } // Red +#define MAROON (Color){ 190, 33, 55, 255 } // Maroon +#define GREEN (Color){ 0, 228, 48, 255 } // Green +#define LIME (Color){ 0, 158, 47, 255 } // Lime +#define DARKGREEN (Color){ 0, 117, 44, 255 } // Dark Green +#define SKYBLUE (Color){ 102, 191, 255, 255 } // Sky Blue +#define BLUE (Color){ 0, 121, 241, 255 } // Blue +#define DARKBLUE (Color){ 0, 82, 172, 255 } // Dark Blue +#define PURPLE (Color){ 200, 122, 255, 255 } // Purple +#define VIOLET (Color){ 135, 60, 190, 255 } // Violet +#define DARKPURPLE (Color){ 112, 31, 126, 255 } // Dark Purple +#define BEIGE (Color){ 211, 176, 131, 255 } // Beige +#define BROWN (Color){ 127, 106, 79, 255 } // Brown +#define DARKBROWN (Color){ 76, 63, 47, 255 } // Dark Brown + +#define WHITE (Color){ 255, 255, 255, 255 } // White +#define BLACK (Color){ 0, 0, 0, 255 } // Black +#define BLANK (Color){ 0, 0, 0, 0 } // Blank (Transparent) +#define MAGENTA (Color){ 255, 0, 255, 255 } // Magenta +#define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo) + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- +#ifndef __cplusplus +// Boolean type + #ifndef __APPLE__ + #if !defined(_STDBOOL_H) + typedef enum { false, true } bool; + #define _STDBOOL_H + #endif + #else + #include + #endif +#endif + +// byte type +typedef unsigned char byte; + +// Vector2 type +typedef struct Vector2 { + float x; + float y; +} Vector2; + +// Vector3 type +typedef struct Vector3 { + float x; + float y; + float z; +} Vector3; + +// Matrix type (OpenGL style 4x4 - right handed, column major) +typedef struct Matrix { + float m0, m4, m8, m12; + float m1, m5, m9, m13; + float m2, m6, m10, m14; + float m3, m7, m11, m15; +} Matrix; + +// Color type, RGBA (32bit) +typedef struct Color { + unsigned char r; + unsigned char g; + unsigned char b; + unsigned char a; +} Color; + +// Rectangle type +typedef struct Rectangle { + int x; + int y; + int width; + int height; +} Rectangle; + +// Image type, bpp always RGBA (32bit) +// NOTE: Data stored in CPU memory (RAM) +typedef struct Image { + void *data; // Image raw data + int width; // Image base width + int height; // Image base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (TextureFormat) +} Image; + +// Texture2D type, bpp always RGBA (32bit) +// NOTE: Data stored in GPU memory +typedef struct Texture2D { + unsigned int id; // OpenGL texture id + int width; // Texture base width + int height; // Texture base height + int mipmaps; // Mipmap levels, 1 by default + int format; // Data format (TextureFormat) +} Texture2D; + +// RenderTexture2D type, for texture rendering +typedef struct RenderTexture2D { + unsigned int id; // Render texture (fbo) id + Texture2D texture; // Color buffer attachment texture + Texture2D depth; // Depth buffer attachment texture +} RenderTexture2D; + +// SpriteFont type, includes texture and charSet array data +typedef struct SpriteFont { + Texture2D texture; // Font texture + int size; // Base size (default chars height) + int numChars; // Number of characters + int *charValues; // Characters values array + Rectangle *charRecs; // Characters rectangles within the texture + Vector2 *charOffsets; // Characters offsets (on drawing) + int *charAdvanceX; // Characters x advance (on drawing) +} SpriteFont; + +// Camera type, defines a camera position/orientation in 3d space +typedef struct Camera { + Vector3 position; // Camera position + Vector3 target; // Camera target it looks-at + Vector3 up; // Camera up vector (rotation over its axis) + float fovy; // Camera field-of-view apperture in Y (degrees) +} Camera; + +// Camera2D type, defines a 2d camera +typedef struct Camera2D { + Vector2 offset; // Camera offset (displacement from target) + Vector2 target; // Camera target (rotation and zoom origin) + float rotation; // Camera rotation in degrees + float zoom; // Camera zoom (scaling), should be 1.0f by default +} Camera2D; + +// Bounding box type +typedef struct BoundingBox { + Vector3 min; // minimum vertex box-corner + Vector3 max; // maximum vertex box-corner +} BoundingBox; + +// Vertex data definning a mesh +typedef struct Mesh { + int vertexCount; // number of vertices stored in arrays + int triangleCount; // number of triangles stored (indexed or not) + float *vertices; // vertex position (XYZ - 3 components per vertex) (shader-location = 0) + float *texcoords; // vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1) + float *texcoords2; // vertex second texture coordinates (useful for lightmaps) (shader-location = 5) + float *normals; // vertex normals (XYZ - 3 components per vertex) (shader-location = 2) + float *tangents; // vertex tangents (XYZ - 3 components per vertex) (shader-location = 4) + unsigned char *colors; // vertex colors (RGBA - 4 components per vertex) (shader-location = 3) + unsigned short *indices;// vertex indices (in case vertex data comes indexed) + + unsigned int vaoId; // OpenGL Vertex Array Object id + unsigned int vboId[7]; // OpenGL Vertex Buffer Objects id (7 types of vertex data) +} Mesh; + +// Shader type (generic shader) +typedef struct Shader { + unsigned int id; // Shader program id + + // Vertex attributes locations (default locations) + int vertexLoc; // Vertex attribute location point (default-location = 0) + int texcoordLoc; // Texcoord attribute location point (default-location = 1) + int texcoord2Loc; // Texcoord2 attribute location point (default-location = 5) + int normalLoc; // Normal attribute location point (default-location = 2) + int tangentLoc; // Tangent attribute location point (default-location = 4) + int colorLoc; // Color attibute location point (default-location = 3) + + // Uniform locations + int mvpLoc; // ModelView-Projection matrix uniform location point (vertex shader) + int tintColorLoc; // Diffuse color uniform location point (fragment shader) + + // Texture map locations (generic for any kind of map) + int mapTexture0Loc; // Map texture uniform location point (default-texture-unit = 0) + int mapTexture1Loc; // Map texture uniform location point (default-texture-unit = 1) + int mapTexture2Loc; // Map texture uniform location point (default-texture-unit = 2) +} Shader; + +// Material type +typedef struct Material { + Shader shader; // Standard shader (supports 3 map textures) + + Texture2D texDiffuse; // Diffuse texture (binded to shader mapTexture0Loc) + Texture2D texNormal; // Normal texture (binded to shader mapTexture1Loc) + Texture2D texSpecular; // Specular texture (binded to shader mapTexture2Loc) + + Color colDiffuse; // Diffuse color + Color colAmbient; // Ambient color + Color colSpecular; // Specular color + + float glossiness; // Glossiness level (Ranges from 0 to 1000) +} Material; + +// Model type +typedef struct Model { + Mesh mesh; // Vertex data buffers (RAM and VRAM) + Matrix transform; // Local transform matrix + Material material; // Shader and textures data +} Model; + +// Light type +typedef struct LightData { + unsigned int id; // Light unique id + bool enabled; // Light enabled + int type; // Light type: LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT + + Vector3 position; // Light position + Vector3 target; // Light target: LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target) + float radius; // Light attenuation radius light intensity reduced with distance (world distance) + + Color diffuse; // Light diffuse color + float intensity; // Light intensity level + + float coneAngle; // Light cone max angle: LIGHT_SPOT +} LightData, *Light; + +// Light types +typedef enum { LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT } LightType; + +// Ray type (useful for raycast) +typedef struct Ray { + Vector3 position; // Ray position (origin) + Vector3 direction; // Ray direction +} Ray; + +// Sound source type +typedef struct Sound { + unsigned int source; // Sound audio source id + unsigned int buffer; // Sound audio buffer id +} Sound; + +// Wave type, defines audio wave data +typedef struct Wave { + void *data; // Buffer data pointer + unsigned int dataSize; // Data size in bytes + unsigned int sampleRate; // Samples per second to be played + short bitsPerSample; // Sample size in bits + short channels; +} Wave; + +// Texture formats +// NOTE: Support depends on OpenGL version and platform +typedef enum { + UNCOMPRESSED_GRAYSCALE = 1, // 8 bit per pixel (no alpha) + UNCOMPRESSED_GRAY_ALPHA, // 16 bpp (2 channels) + UNCOMPRESSED_R5G6B5, // 16 bpp + UNCOMPRESSED_R8G8B8, // 24 bpp + UNCOMPRESSED_R5G5B5A1, // 16 bpp (1 bit alpha) + UNCOMPRESSED_R4G4B4A4, // 16 bpp (4 bit alpha) + UNCOMPRESSED_R8G8B8A8, // 32 bpp + COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) + COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) + COMPRESSED_DXT3_RGBA, // 8 bpp + COMPRESSED_DXT5_RGBA, // 8 bpp + COMPRESSED_ETC1_RGB, // 4 bpp + COMPRESSED_ETC2_RGB, // 4 bpp + COMPRESSED_ETC2_EAC_RGBA, // 8 bpp + COMPRESSED_PVRT_RGB, // 4 bpp + COMPRESSED_PVRT_RGBA, // 4 bpp + COMPRESSED_ASTC_4x4_RGBA, // 8 bpp + COMPRESSED_ASTC_8x8_RGBA // 2 bpp +} TextureFormat; + +// Color blending modes (pre-defined) +typedef enum { BLEND_ALPHA = 0, BLEND_ADDITIVE, BLEND_MULTIPLIED } BlendMode; + +// Gestures type +// NOTE: It could be used as flags to enable only some gestures +typedef enum { + GESTURE_NONE = 0, + GESTURE_TAP = 1, + GESTURE_DOUBLETAP = 2, + GESTURE_HOLD = 4, + GESTURE_DRAG = 8, + GESTURE_SWIPE_RIGHT = 16, + GESTURE_SWIPE_LEFT = 32, + GESTURE_SWIPE_UP = 64, + GESTURE_SWIPE_DOWN = 128, + GESTURE_PINCH_IN = 256, + GESTURE_PINCH_OUT = 512 +} Gestures; + +// Touch action (fingers or mouse) +typedef enum { TOUCH_UP, TOUCH_DOWN, TOUCH_MOVE } TouchAction; + +// Gesture events +// NOTE: MAX_TOUCH_POINTS fixed to 2 +typedef struct GestureEvent { + int touchAction; + int pointCount; + int pointerId[MAX_TOUCH_POINTS]; + Vector2 position[MAX_TOUCH_POINTS]; +} GestureEvent; + +// Camera system modes +typedef enum { CAMERA_CUSTOM = 0, CAMERA_FREE, CAMERA_ORBITAL, CAMERA_FIRST_PERSON, CAMERA_THIRD_PERSON } CameraMode; + +// Head Mounted Display devices +typedef enum { + HMD_DEFAULT_DEVICE = 0, + HMD_OCULUS_RIFT_DK2, + HMD_OCULUS_RIFT_CV1, + HMD_VALVE_HTC_VIVE, + HMD_SAMSUNG_GEAR_VR, + HMD_GOOGLE_CARDBOARD, + HMD_SONY_PLAYSTATION_VR, + HMD_RAZER_OSVR, + HMD_FOVE_VR, +} VrDevice; + +#ifdef __cplusplus +extern "C" { // Prevents name mangling of functions +#endif + +//------------------------------------------------------------------------------------ +// Global Variables Definition +//------------------------------------------------------------------------------------ +// It's lonely here... + +//------------------------------------------------------------------------------------ +// Window and Graphics Device Functions (Module: core) +//------------------------------------------------------------------------------------ +#if defined(PLATFORM_ANDROID) +void InitWindow(int width, int height, struct android_app *state); // Init Android Activity and OpenGL Graphics +#elif defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) || defined(PLATFORM_WEB) +void InitWindow(int width, int height, const char *title); // Initialize Window and OpenGL Graphics +#endif + +void CloseWindow(void); // Close Window and Terminate Context +bool WindowShouldClose(void); // Detect if KEY_ESCAPE pressed or Close icon pressed +bool IsWindowMinimized(void); // Detect if window has been minimized (or lost focus) +void ToggleFullscreen(void); // Fullscreen toggle (only PLATFORM_DESKTOP) +int GetScreenWidth(void); // Get current screen width +int GetScreenHeight(void); // Get current screen height + +void ShowCursor(void); // Shows cursor +void HideCursor(void); // Hides cursor +bool IsCursorHidden(void); // Returns true if cursor is not visible +void EnableCursor(void); // Enables cursor +void DisableCursor(void); // Disables cursor + +void ClearBackground(Color color); // Sets Background Color +void BeginDrawing(void); // Setup drawing canvas to start drawing +void EndDrawing(void); // End canvas drawing and Swap Buffers (Double Buffering) + +void Begin2dMode(Camera2D camera); // Initialize 2D mode with custom camera +void End2dMode(void); // Ends 2D mode custom camera usage +void Begin3dMode(Camera camera); // Initializes 3D mode for drawing (Camera setup) +void End3dMode(void); // Ends 3D mode and returns to default 2D orthographic mode +void BeginTextureMode(RenderTexture2D target); // Initializes render texture for drawing +void EndTextureMode(void); // Ends drawing to render texture + +Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Returns a ray trace from mouse position +Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Returns the screen space position from a 3d world space position +Matrix GetCameraMatrix(Camera camera); // Returns camera transform matrix (view matrix) + +void SetTargetFPS(int fps); // Set target FPS (maximum) +float GetFPS(void); // Returns current FPS +float GetFrameTime(void); // Returns time in seconds for one frame + +Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value +int GetHexValue(Color color); // Returns hexadecimal value for a Color +float *ColorToFloat(Color color); // Converts Color to float array and normalizes +float *VectorToFloat(Vector3 vec); // Converts Vector3 to float array +float *MatrixToFloat(Matrix mat); // Converts Matrix to float array + +int GetRandomValue(int min, int max); // Returns a random value between min and max (both included) +Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f + +void SetConfigFlags(char flags); // Setup some window configuration flags +void ShowLogo(void); // Activates raylib logo at startup (can be done with flags) + +bool IsFileDropped(void); // Check if a file have been dropped into window +char **GetDroppedFiles(int *count); // Retrieve dropped files into window +void ClearDroppedFiles(void); // Clear dropped files paths buffer + +void StorageSaveValue(int position, int value); // Storage save integer value (to defined position) +int StorageLoadValue(int position); // Storage load integer value (from defined position) + +//------------------------------------------------------------------------------------ +// Input Handling Functions (Module: core) +//------------------------------------------------------------------------------------ +#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) || defined(PLATFORM_WEB) +bool IsKeyPressed(int key); // Detect if a key has been pressed once +bool IsKeyDown(int key); // Detect if a key is being pressed +bool IsKeyReleased(int key); // Detect if a key has been released once +bool IsKeyUp(int key); // Detect if a key is NOT being pressed +int GetKeyPressed(void); // Get latest key pressed +void SetExitKey(int key); // Set a custom key to exit program (default is ESC) + +bool IsGamepadAvailable(int gamepad); // Detect if a gamepad is available +float GetGamepadAxisMovement(int gamepad, int axis); // Return axis movement value for a gamepad axis +bool IsGamepadButtonPressed(int gamepad, int button); // Detect if a gamepad button has been pressed once +bool IsGamepadButtonDown(int gamepad, int button); // Detect if a gamepad button is being pressed +bool IsGamepadButtonReleased(int gamepad, int button); // Detect if a gamepad button has been released once +bool IsGamepadButtonUp(int gamepad, int button); // Detect if a gamepad button is NOT being pressed +#endif + +bool IsMouseButtonPressed(int button); // Detect if a mouse button has been pressed once +bool IsMouseButtonDown(int button); // Detect if a mouse button is being pressed +bool IsMouseButtonReleased(int button); // Detect if a mouse button has been released once +bool IsMouseButtonUp(int button); // Detect if a mouse button is NOT being pressed +int GetMouseX(void); // Returns mouse position X +int GetMouseY(void); // Returns mouse position Y +Vector2 GetMousePosition(void); // Returns mouse position XY +void SetMousePosition(Vector2 position); // Set mouse position XY +int GetMouseWheelMove(void); // Returns mouse wheel movement Y + +int GetTouchX(void); // Returns touch position X for touch point 0 (relative to screen size) +int GetTouchY(void); // Returns touch position Y for touch point 0 (relative to screen size) +Vector2 GetTouchPosition(int index); // Returns touch position XY for a touch point index (relative to screen size) + +#if defined(PLATFORM_ANDROID) +bool IsButtonPressed(int button); // Detect if an android physic button has been pressed +bool IsButtonDown(int button); // Detect if an android physic button is being pressed +bool IsButtonReleased(int button); // Detect if an android physic button has been released +#endif + +//------------------------------------------------------------------------------------ +// Gestures and Touch Handling Functions (Module: gestures) +//------------------------------------------------------------------------------------ +void SetGesturesEnabled(unsigned int gestureFlags); // Enable a set of gestures using flags +bool IsGestureDetected(int gesture); // Check if a gesture have been detected +void ProcessGestureEvent(GestureEvent event); // Process gesture event and translate it into gestures +void UpdateGestures(void); // Update gestures detected (called automatically in PollInputEvents()) + +int GetTouchPointsCount(void); // Get touch points count +int GetGestureDetected(void); // Get latest detected gesture +float GetGestureHoldDuration(void); // Get gesture hold time in milliseconds +Vector2 GetGestureDragVector(void); // Get gesture drag vector +float GetGestureDragAngle(void); // Get gesture drag angle +Vector2 GetGesturePinchVector(void); // Get gesture pinch delta +float GetGesturePinchAngle(void); // Get gesture pinch angle + +//------------------------------------------------------------------------------------ +// Camera System Functions (Module: camera) +//------------------------------------------------------------------------------------ +void SetCameraMode(int mode); // Set camera mode (multiple camera modes available) +void UpdateCamera(Camera *camera); // Update camera (player position is ignored) +void UpdateCameraPlayer(Camera *camera, Vector3 *position); // Update camera and player position (1st person and 3rd person cameras) + +void SetCameraPosition(Vector3 position); // Set internal camera position +void SetCameraTarget(Vector3 target); // Set internal camera target +void SetCameraFovy(float fovy); // Set internal camera field-of-view-y + +void SetCameraPanControl(int panKey); // Set camera pan key to combine with mouse movement (free camera) +void SetCameraAltControl(int altKey); // Set camera alt key to combine with mouse movement (free camera) +void SetCameraSmoothZoomControl(int szKey); // Set camera smooth zoom key to combine with mouse (free camera) + +void SetCameraMoveControls(int frontKey, int backKey, + int leftKey, int rightKey, + int upKey, int downKey); // Set camera move controls (1st person and 3rd person cameras) +void SetCameraMouseSensitivity(float sensitivity); // Set camera mouse sensitivity (1st person and 3rd person cameras) + +//------------------------------------------------------------------------------------ +// Basic Shapes Drawing Functions (Module: shapes) +//------------------------------------------------------------------------------------ +void DrawPixel(int posX, int posY, Color color); // Draw a pixel +void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version) +void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line +void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (Vector version) +void DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle +void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2); // Draw a gradient-filled circle +void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) +void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline +void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle +void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle +void DrawRectangleGradient(int posX, int posY, int width, int height, Color color1, Color color2); // Draw a gradient-filled rectangle +void DrawRectangleV(Vector2 position, Vector2 size, Color color); // Draw a color-filled rectangle (Vector version) +void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline +void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle +void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline +void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a regular polygon (Vector version) +void DrawPolyEx(Vector2 *points, int numPoints, Color color); // Draw a closed polygon defined by points +void DrawPolyExLines(Vector2 *points, int numPoints, Color color); // Draw polygon lines + +bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles +bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles +bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle +Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision +bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle +bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle +bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle + +//------------------------------------------------------------------------------------ +// Texture Loading and Drawing Functions (Module: textures) +//------------------------------------------------------------------------------------ +Image LoadImage(const char *fileName); // Load an image into CPU memory (RAM) +Image LoadImageEx(Color *pixels, int width, int height); // Load image data from Color array data (RGBA - 32bit) +Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize); // Load image data from RAW file +Image LoadImageFromRES(const char *rresName, int resId); // Load an image from rRES file (raylib Resource) +Texture2D LoadTexture(const char *fileName); // Load an image as texture into GPU memory +Texture2D LoadTextureEx(void *data, int width, int height, int textureFormat); // Load a texture from raw data into GPU memory +Texture2D LoadTextureFromRES(const char *rresName, int resId); // Load an image as texture from rRES file (raylib Resource) +Texture2D LoadTextureFromImage(Image image); // Load a texture from image data +RenderTexture2D LoadRenderTexture(int width, int height); // Load a texture to be used for rendering +void UnloadImage(Image image); // Unload image from CPU memory (RAM) +void UnloadTexture(Texture2D texture); // Unload texture from GPU memory +void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory +Color *GetImageData(Image image); // Get pixel data from image as a Color struct array +Image GetTextureData(Texture2D texture); // Get pixel data from GPU texture and return an Image +void ImageToPOT(Image *image, Color fillColor); // Convert image to POT (power-of-two) +void ImageFormat(Image *image, int newFormat); // Convert image data to desired format +void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering) +Image ImageCopy(Image image); // Create an image duplicate (useful for transformations) +void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle +void ImageResize(Image *image, int newWidth, int newHeight); // Resize and image (bilinear filtering) +void ImageResizeNN(Image *image,int newWidth,int newHeight); // Resize and image (Nearest-Neighbor scaling algorithm) +Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font) +Image ImageTextEx(SpriteFont font, const char *text, int fontSize, int spacing, Color tint); // Create an image from text (custom sprite font) +void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec); // Draw a source image within a destination image +void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color); // Draw text (default font) within an image (destination) +void ImageDrawTextEx(Image *dst, Vector2 position, SpriteFont font, const char *text, int fontSize, int spacing, Color color); // Draw text (custom sprite font) within an image (destination) +void ImageFlipVertical(Image *image); // Flip image vertically +void ImageFlipHorizontal(Image *image); // Flip image horizontally +void ImageColorTint(Image *image, Color color); // Modify image color: tint +void ImageColorInvert(Image *image); // Modify image color: invert +void ImageColorGrayscale(Image *image); // Modify image color: grayscale +void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) +void ImageColorBrightness(Image *image, int brightness); // Modify image color: brightness (-255 to 255) +void GenTextureMipmaps(Texture2D texture); // Generate GPU mipmaps for a texture +void UpdateTexture(Texture2D texture, void *pixels); // Update GPU texture with new data + +void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D +void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 +void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters +void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle +void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, Vector2 origin, // Draw a part of a texture defined by a rectangle with 'pro' parameters + float rotation, Color tint); + +//------------------------------------------------------------------------------------ +// Font Loading and Text Drawing Functions (Module: text) +//------------------------------------------------------------------------------------ +SpriteFont GetDefaultFont(void); // Get the default SpriteFont +SpriteFont LoadSpriteFont(const char *fileName); // Load a SpriteFont image into GPU memory +void UnloadSpriteFont(SpriteFont spriteFont); // Unload SpriteFont from GPU memory + +void DrawText(const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) +void DrawTextEx(SpriteFont spriteFont, const char* text, Vector2 position, // Draw text using SpriteFont and additional parameters + int fontSize, int spacing, Color tint); +int MeasureText(const char *text, int fontSize); // Measure string width for default font +Vector2 MeasureTextEx(SpriteFont spriteFont, const char *text, int fontSize, int spacing); // Measure string size for SpriteFont + +void DrawFPS(int posX, int posY); // Shows current FPS on top-left corner +const char *FormatText(const char *text, ...); // Formatting of text with variables to 'embed' +const char *SubText(const char *text, int position, int length); // Get a piece of a text string + +//------------------------------------------------------------------------------------ +// Basic 3d Shapes Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ +void DrawCube(Vector3 position, float width, float height, float lenght, Color color); // Draw cube +void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version) +void DrawCubeWires(Vector3 position, float width, float height, float lenght, Color color); // Draw cube wires +void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float height, float lenght, Color color); // Draw cube textured +void DrawSphere(Vector3 centerPos, float radius, Color color); // Draw sphere +void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters +void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires +void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone +void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires +void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ +void DrawRay(Ray ray, Color color); // Draw a ray line +void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0)) +void DrawGizmo(Vector3 position); // Draw simple gizmo +void DrawLight(Light light); // Draw light in 3D world +void Draw3DLine(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space +void Draw3DCircle(Vector3 center, float radius, float rotationAngle, Vector3 rotation, Color color); // Draw a circle in 3D world space +//DrawTorus(), DrawTeapot() are useless... + +//------------------------------------------------------------------------------------ +// Model 3d Loading and Drawing Functions (Module: models) +//------------------------------------------------------------------------------------ +Model LoadModel(const char *fileName); // Load a 3d model (.OBJ) +Model LoadModelEx(Mesh data, bool dynamic); // Load a 3d model (from mesh data) +Model LoadModelFromRES(const char *rresName, int resId); // Load a 3d model from rRES file (raylib Resource) +Model LoadHeightmap(Image heightmap, Vector3 size); // Load a heightmap image as a 3d model +Model LoadCubicmap(Image cubicmap); // Load a map image as a 3d model (cubes based) +void UnloadModel(Model model); // Unload 3d model from memory + +Material LoadMaterial(const char *fileName); // Load material data (from file) +Material LoadDefaultMaterial(void); // Load default material (uses default models shader) +Material LoadStandardMaterial(void); // Load standard material (uses material attributes and lighting shader) +void UnloadMaterial(Material material); // Unload material textures from VRAM + +void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) +void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters +void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set) +void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters +void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires) + +void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint); // Draw a billboard texture +void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle sourceRec, Vector3 center, float size, Color tint); // Draw a billboard texture defined by sourceRec + +BoundingBox CalculateBoundingBox(Mesh mesh); // Calculate mesh bounding box limits +bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, float radiusB); // Detect collision between two spheres +bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Detect collision between two bounding boxes +bool CheckCollisionBoxSphere(BoundingBox box, Vector3 centerSphere, float radiusSphere); // Detect collision between box and sphere +bool CheckCollisionRaySphere(Ray ray, Vector3 spherePosition, float sphereRadius); // Detect collision between ray and sphere +bool CheckCollisionRaySphereEx(Ray ray, Vector3 spherePosition, float sphereRadius, Vector3 *collisionPoint); // Detect collision between ray and sphere with extended parameters and collision point detection +bool CheckCollisionRayBox(Ray ray, BoundingBox box); // Detect collision between ray and box +Vector3 ResolveCollisionCubicmap(Image cubicmap, Vector3 mapPosition, Vector3 *playerPosition, float radius); // Detect collision of player radius with cubicmap + // NOTE: Return the normal vector of the impacted surface +//------------------------------------------------------------------------------------ +// Shaders System Functions (Module: rlgl) +// NOTE: This functions are useless when using OpenGL 1.1 +//------------------------------------------------------------------------------------ +Shader LoadShader(char *vsFileName, char *fsFileName); // Load a custom shader and bind default locations +void UnloadShader(Shader shader); // Unload a custom shader from memory + +Shader GetDefaultShader(void); // Get default shader +Shader GetStandardShader(void); // Get standard shader +Texture2D GetDefaultTexture(void); // Get default texture + +int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location +void SetShaderValue(Shader shader, int uniformLoc, float *value, int size); // Set shader uniform value (float) +void SetShaderValuei(Shader shader, int uniformLoc, int *value, int size); // Set shader uniform value (int) +void SetShaderValueMatrix(Shader shader, int uniformLoc, Matrix mat); // Set shader uniform value (matrix 4x4) + +void SetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) +void SetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) + +void BeginShaderMode(Shader shader); // Begin custom shader drawing +void EndShaderMode(void); // End custom shader drawing (use default shader) +void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied) +void EndBlendMode(void); // End blending mode (reset to default: alpha blending) + +Light CreateLight(int type, Vector3 position, Color diffuse); // Create a new light, initialize it and add to pool +void DestroyLight(Light light); // Destroy a light and take it out of the list + +//------------------------------------------------------------------------------------ +// VR experience Functions (Module: rlgl) +// NOTE: This functions are useless when using OpenGL 1.1 +//------------------------------------------------------------------------------------ +void InitVrDevice(int vdDevice); // Init VR device +void CloseVrDevice(void); // Close VR device +void UpdateVrTracking(void); // Update VR tracking (position and orientation) +void BeginVrDrawing(void); // Begin VR drawing configuration +void EndVrDrawing(void); // End VR drawing process (and desktop mirror) +bool IsVrDeviceReady(void); // Detect if VR device (or simulator) is ready +void ToggleVrMode(void); // Enable/Disable VR experience (device or simulator) + +//------------------------------------------------------------------------------------ +// Audio Loading and Playing Functions (Module: audio) +//------------------------------------------------------------------------------------ +void InitAudioDevice(void); // Initialize audio device and context +void CloseAudioDevice(void); // Close the audio device and context (and music stream) +bool IsAudioDeviceReady(void); // True if call to InitAudioDevice() was successful and CloseAudioDevice() has not been called yet + +Sound LoadSound(char *fileName); // Load sound to memory +Sound LoadSoundFromWave(Wave wave); // Load sound to memory from wave data +Sound LoadSoundFromRES(const char *rresName, int resId); // Load sound to memory from rRES file (raylib Resource) +void UnloadSound(Sound sound); // Unload sound +void PlaySound(Sound sound); // Play a sound +void PauseSound(Sound sound); // Pause a sound +void StopSound(Sound sound); // Stop playing a sound +bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing +void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) +void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) + +int PlayMusicStream(int index, char *fileName); // Start music playing (open stream) +void UpdateMusicStream(int index); // Updates buffers for music streaming +void StopMusicStream(int index); // Stop music playing (close stream) +void PauseMusicStream(int index); // Pause music playing +void ResumeMusicStream(int index); // Resume playing paused music +bool IsMusicPlaying(int index); // Check if music is playing +void SetMusicVolume(int index, float volume); // Set volume for music (1.0 is max level) +void SetMusicPitch(int index, float pitch); // Set pitch for a music (1.0 is base level) +float GetMusicTimeLength(int index); // Get current music time length (in seconds) +float GetMusicTimePlayed(int index); // Get current music time played (in seconds) +int GetMusicStreamCount(void); // Get number of streams loaded + +#ifdef __cplusplus +} +#endif + +#endif // RAYLIB_H From c604b53f78adc2c96d5f0ee6cd1becb3429c778a Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 25 Jul 2016 19:43:59 +0200 Subject: [PATCH 004/102] Corrected issue with paths on RPI --- examples/Makefile | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index 39765f15e..b4bc0411b 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -77,8 +77,27 @@ endif #CFLAGSEXTRA = -Wextra -Wmissing-prototypes -Wstrict-prototypes +# define raylib release directory for compiled library +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + RAYLIB_PATH = ../release/win32/mingw32 + endif + ifeq ($(PLATFORM_OS),LINUX) + RAYLIB_PATH = ../release/linux + endif + ifeq ($(PLATFORM_OS),OSX) + RAYLIB_PATH = ../release/osx + endif +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + RAYLIB_PATH = ../release/html5 +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + RAYLIB_PATH = ../release/rpi +endif + # define any directories containing required header files -INCLUDES = -I. -I../src -I../src/external +INCLUDES = -I. -I../src -I../src/external -I$(RAYLIB_PATH) ifeq ($(PLATFORM),PLATFORM_RPI) INCLUDES += -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads @@ -97,7 +116,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) endif # define library paths containing required libs -LFLAGS = -L. -L../src +LFLAGS = -L. -L../src -L$(RAYLIB_PATH) ifeq ($(PLATFORM),PLATFORM_RPI) LFLAGS += -L/opt/vc/lib From 9e8232d7503e686f49e55eb388c0e8670e247277 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 25 Jul 2016 19:44:21 +0200 Subject: [PATCH 005/102] Redesigned bloom shader to work on RPI --- examples/resources/shaders/glsl100/bloom.fs | 30 +++++++++++---------- examples/resources/shaders/glsl330/bloom.fs | 30 +++++++++++---------- shaders/glsl100/bloom.fs | 28 ++++++++++--------- shaders/glsl330/bloom.fs | 28 ++++++++++--------- 4 files changed, 62 insertions(+), 54 deletions(-) diff --git a/examples/resources/shaders/glsl100/bloom.fs b/examples/resources/shaders/glsl100/bloom.fs index 128736f22..a8e1d20f7 100644 --- a/examples/resources/shaders/glsl100/bloom.fs +++ b/examples/resources/shaders/glsl100/bloom.fs @@ -8,30 +8,32 @@ varying vec4 fragColor; // Input uniform values uniform sampler2D texture0; -uniform vec4 fragTintColor; +uniform vec4 colDiffuse; // NOTE: Add here your custom variables +const vec2 size = vec2(800, 450); // render size +const float samples = 5.0; // pixels per axis; higher = bigger glow, worse performance +const float quality = 2.5; // lower = smaller glow, better quality + void main() { vec4 sum = vec4(0); - vec4 tc = vec4(0); + vec2 sizeFactor = vec2(1)/size*quality; - for (int i = -4; i < 4; i++) + // Texel color fetching from texture sampler + vec4 source = texture2D(texture0, fragTexCoord); + + const int range = 2; // should be = (samples - 1)/2; + + for (int x = -range; x <= range; x++) { - for (int j = -3; j < 3; j++) + for (int y = -range; y <= range; y++) { - sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004) * 0.25; + sum += texture2D(texture0, fragTexCoord + vec2(x, y)*sizeFactor); } } - - // Texel color fetching from texture sampler - vec4 texelColor = texture2D(texture0, fragTexCoord); - + // Calculate final fragment color - if (texelColor.r < 0.3) tc = sum*sum*0.012 + texelColor; - else if (texelColor.r < 0.5) tc = sum*sum*0.009 + texelColor; - else tc = sum*sum*0.0075 + texelColor; - - gl_FragColor = tc; + gl_FragColor = ((sum/(samples*samples)) + source)*colDiffuse; } \ No newline at end of file diff --git a/examples/resources/shaders/glsl330/bloom.fs b/examples/resources/shaders/glsl330/bloom.fs index 0307bc06e..333d5b059 100644 --- a/examples/resources/shaders/glsl330/bloom.fs +++ b/examples/resources/shaders/glsl330/bloom.fs @@ -6,33 +6,35 @@ in vec4 fragColor; // Input uniform values uniform sampler2D texture0; -uniform vec4 fragTintColor; +uniform vec4 colDiffuse; // Output fragment color out vec4 finalColor; // NOTE: Add here your custom variables +const vec2 size = vec2(800, 450); // render size +const float samples = 5.0; // pixels per axis; higher = bigger glow, worse performance +const float quality = 2.5; // lower = smaller glow, better quality + void main() { vec4 sum = vec4(0); - vec4 tc = vec4(0); + vec2 sizeFactor = vec2(1)/size*quality; - for (int i = -4; i < 4; i++) + // Texel color fetching from texture sampler + vec4 source = texture(texture0, fragTexCoord); + + const int range = 2; // should be = (samples - 1)/2; + + for (int x = -range; x <= range; x++) { - for (int j = -3; j < 3; j++) + for (int y = -range; y <= range; y++) { - sum += texture(texture0, fragTexCoord + vec2(j, i)*0.004)*0.25; + sum += texture(texture0, fragTexCoord + vec2(x, y)*sizeFactor); } } - - // Texel color fetching from texture sampler - vec4 texelColor = texture(texture0, fragTexCoord); - - // Calculate final fragment color - if (texelColor.r < 0.3) tc = sum*sum*0.012 + texelColor; - else if (texelColor.r < 0.5) tc = sum*sum*0.009 + texelColor; - else tc = sum*sum*0.0075 + texelColor; - finalColor = tc; + // Calculate final fragment color + finalColor = ((sum/(samples*samples)) + source)*colDiffuse; } \ No newline at end of file diff --git a/shaders/glsl100/bloom.fs b/shaders/glsl100/bloom.fs index 82278fc38..a8e1d20f7 100644 --- a/shaders/glsl100/bloom.fs +++ b/shaders/glsl100/bloom.fs @@ -12,26 +12,28 @@ uniform vec4 colDiffuse; // NOTE: Add here your custom variables +const vec2 size = vec2(800, 450); // render size +const float samples = 5.0; // pixels per axis; higher = bigger glow, worse performance +const float quality = 2.5; // lower = smaller glow, better quality + void main() { vec4 sum = vec4(0); - vec4 tc = vec4(0); + vec2 sizeFactor = vec2(1)/size*quality; - for (int i = -4; i < 4; i++) + // Texel color fetching from texture sampler + vec4 source = texture2D(texture0, fragTexCoord); + + const int range = 2; // should be = (samples - 1)/2; + + for (int x = -range; x <= range; x++) { - for (int j = -3; j < 3; j++) + for (int y = -range; y <= range; y++) { - sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004) * 0.25; + sum += texture2D(texture0, fragTexCoord + vec2(x, y)*sizeFactor); } } - - // Texel color fetching from texture sampler - vec4 texelColor = texture2D(texture0, fragTexCoord); - + // Calculate final fragment color - if (texelColor.r < 0.3) tc = sum*sum*0.012 + texelColor; - else if (texelColor.r < 0.5) tc = sum*sum*0.009 + texelColor; - else tc = sum*sum*0.0075 + texelColor; - - gl_FragColor = tc; + gl_FragColor = ((sum/(samples*samples)) + source)*colDiffuse; } \ No newline at end of file diff --git a/shaders/glsl330/bloom.fs b/shaders/glsl330/bloom.fs index 102e66052..333d5b059 100644 --- a/shaders/glsl330/bloom.fs +++ b/shaders/glsl330/bloom.fs @@ -13,26 +13,28 @@ out vec4 finalColor; // NOTE: Add here your custom variables +const vec2 size = vec2(800, 450); // render size +const float samples = 5.0; // pixels per axis; higher = bigger glow, worse performance +const float quality = 2.5; // lower = smaller glow, better quality + void main() { vec4 sum = vec4(0); - vec4 tc = vec4(0); + vec2 sizeFactor = vec2(1)/size*quality; - for (int i = -4; i < 4; i++) + // Texel color fetching from texture sampler + vec4 source = texture(texture0, fragTexCoord); + + const int range = 2; // should be = (samples - 1)/2; + + for (int x = -range; x <= range; x++) { - for (int j = -3; j < 3; j++) + for (int y = -range; y <= range; y++) { - sum += texture(texture0, fragTexCoord + vec2(j, i)*0.004)*0.25; + sum += texture(texture0, fragTexCoord + vec2(x, y)*sizeFactor); } } - - // Texel color fetching from texture sampler - vec4 texelColor = texture(texture0, fragTexCoord); - - // Calculate final fragment color - if (texelColor.r < 0.3) tc = sum*sum*0.012 + texelColor; - else if (texelColor.r < 0.5) tc = sum*sum*0.009 + texelColor; - else tc = sum*sum*0.0075 + texelColor; - finalColor = tc; + // Calculate final fragment color + finalColor = ((sum/(samples*samples)) + source)*colDiffuse; } \ No newline at end of file From 6d68c789891b35f06724bea9436db91f3bd17fcf Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 26 Jul 2016 12:44:33 +0200 Subject: [PATCH 006/102] Updated log output info --- src/audio.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/audio.c b/src/audio.c index 38fefd12e..3c618dd24 100644 --- a/src/audio.c +++ b/src/audio.c @@ -482,8 +482,8 @@ Sound LoadSound(char *fileName) // Audio file loading // NOTE: Buffer space is allocated inside function, Wave must be freed - if (strcmp(GetExtension(fileName),"wav") == 0) wave = LoadWAV(fileName); - else if (strcmp(GetExtension(fileName),"ogg") == 0) wave = LoadOGG(fileName); + if (strcmp(GetExtension(fileName), "wav") == 0) wave = LoadWAV(fileName); + else if (strcmp(GetExtension(fileName), "ogg") == 0) wave = LoadOGG(fileName); else { TraceLog(WARNING, "[%s] Sound extension not recognized, it can't be loaded", fileName); @@ -528,7 +528,7 @@ Sound LoadSound(char *fileName) // Attach sound buffer to source alSourcei(source, AL_BUFFER, buffer); - TraceLog(INFO, "[%s] Sound file loaded successfully (SampleRate: %i, BitRate: %i, Channels: %i)", fileName, wave.sampleRate, wave.bitsPerSample, wave.channels); + TraceLog(INFO, "[SND ID %i][BUFR ID %i] Sound file loaded successfully (SampleRate: %i, BitRate: %i, Channels: %i)", source, buffer, wave.sampleRate, wave.bitsPerSample, wave.channels); // Unallocate WAV data UnloadWave(wave); @@ -759,7 +759,7 @@ void UnloadSound(Sound sound) alDeleteSources(1, &sound.source); alDeleteBuffers(1, &sound.buffer); - TraceLog(INFO, "Unloaded sound data"); + TraceLog(INFO, "[SND ID %i][BUFR ID %i] Unloaded sound data from RAM", sound.source, sound.buffer); } // Play a sound @@ -837,7 +837,7 @@ int PlayMusicStream(int index, char *fileName) else if (mixIndex == (MAX_MIX_CHANNELS - 1)) return ERROR_OUT_OF_MIX_CHANNELS; // error } - if (strcmp(GetExtension(fileName),"ogg") == 0) + if (strcmp(GetExtension(fileName), "ogg") == 0) { // Open audio stream musicStreams[index].stream = stb_vorbis_open_filename(fileName, NULL, NULL); @@ -852,14 +852,13 @@ int PlayMusicStream(int index, char *fileName) // Get file info stb_vorbis_info info = stb_vorbis_get_info(musicStreams[index].stream); - TraceLog(INFO, "[%s] Ogg sample rate: %i", fileName, info.sample_rate); - TraceLog(INFO, "[%s] Ogg channels: %i", fileName, info.channels); + TraceLog(DEBUG, "[%s] Ogg sample rate: %i", fileName, info.sample_rate); + TraceLog(DEBUG, "[%s] Ogg channels: %i", fileName, info.channels); TraceLog(DEBUG, "[%s] Temp memory required: %i", fileName, info.temp_memory_required); musicStreams[index].loop = true; // We loop by default musicStreams[index].enabled = true; - musicStreams[index].totalSamplesLeft = (unsigned int)stb_vorbis_stream_length_in_samples(musicStreams[index].stream) * info.channels; musicStreams[index].totalLengthSeconds = stb_vorbis_stream_length_in_seconds(musicStreams[index].stream); @@ -877,7 +876,7 @@ int PlayMusicStream(int index, char *fileName) if (!musicStreams[index].mixc) return ERROR_LOADING_OGG; // error } } - else if (strcmp(GetExtension(fileName),"xm") == 0) + else if (strcmp(GetExtension(fileName), "xm") == 0) { // only stereo is supported for xm if (!jar_xm_create_context_from_file(&musicStreams[index].xmctx, 48000, fileName)) @@ -904,7 +903,7 @@ int PlayMusicStream(int index, char *fileName) return ERROR_LOADING_XM; // error } } - else if (strcmp(GetExtension(fileName),"mod") == 0) + else if (strcmp(GetExtension(fileName), "mod") == 0) { jar_mod_init(&musicStreams[index].modctx); @@ -1369,7 +1368,7 @@ static void UnloadWave(Wave wave) { free(wave.data); - TraceLog(INFO, "Unloaded wave data"); + TraceLog(INFO, "Unloaded wave data from RAM"); } // Some required functions for audio standalone module version From 07a375e2d626428f5a1b9f02907120a4b3b3a08a Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 26 Jul 2016 13:02:25 +0200 Subject: [PATCH 007/102] Corrected issue with HIghDPI display on OSX Well, not tested yet but it should work... --- src/core.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index a3253d793..022fbfe9f 100644 --- a/src/core.c +++ b/src/core.c @@ -1614,7 +1614,14 @@ static void InitGraphicsDevice(int width, int height) TraceLog(INFO, "Trying to enable VSYNC"); } - //glfwGetFramebufferSize(window, &renderWidth, &renderHeight); // Get framebuffer size of current window +#ifdef __APPLE__ + // Get framebuffer size of current window + // NOTE: Required to handle HighDPI display correctly + // TODO: Probably should be added for other systems too or managed + // internally by GLFW3 callback: glfwSetFramebufferSizeCallback() + glfwGetFramebufferSize(window, &renderWidth, &renderHeight); +#endif + #endif // defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB) #if defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI) @@ -1765,6 +1772,7 @@ static void InitGraphicsDevice(int width, int height) #endif // defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI) // Initialize OpenGL context (states and resources) + // NOTE: screenWidth and screenHeight not used, just stored as globals rlglInit(screenWidth, screenHeight); // Initialize screen viewport (area of the screen that you will actually draw to) From a422e394925e68ab687ef70527c3e207234d8bd7 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 26 Jul 2016 16:55:46 +0200 Subject: [PATCH 008/102] Corrected issue on OSX with High DPI display Many thanks to Marcelo Paez (paezao) --- README.md | 1 + src/core.c | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 71052a0fc..64cfcc530 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,7 @@ contributing (in some way or another) to make raylib project better. Huge thanks - [Chris Hemingway](https://github.com/cHemingway) for improving raylib on OSX build system. - [Emanuele Petriglia](https://github.com/LelixSuper) for working on multiple GNU/Linux improvements and developing [TicTacToe](https://github.com/LelixSuper/TicTacToe) raylib game. - [Joshua Reisenauer](https://github.com/kd7tck) for adding audio modules support (XM, MOD) and reviewing audio system. + - Marcelo Paez (paezao) for his help on OSX to solve High DPI display issue. Thanks Marcelo! [raysan5]: mailto:raysan5@gmail.com "Ramon Santamaria - Ray San" diff --git a/src/core.c b/src/core.c index 022fbfe9f..0008ef2f0 100644 --- a/src/core.c +++ b/src/core.c @@ -1612,16 +1612,7 @@ static void InitGraphicsDevice(int width, int height) { glfwSwapInterval(1); TraceLog(INFO, "Trying to enable VSYNC"); - } - -#ifdef __APPLE__ - // Get framebuffer size of current window - // NOTE: Required to handle HighDPI display correctly - // TODO: Probably should be added for other systems too or managed - // internally by GLFW3 callback: glfwSetFramebufferSizeCallback() - glfwGetFramebufferSize(window, &renderWidth, &renderHeight); -#endif - + } #endif // defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB) #if defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI) @@ -1775,9 +1766,19 @@ static void InitGraphicsDevice(int width, int height) // NOTE: screenWidth and screenHeight not used, just stored as globals rlglInit(screenWidth, screenHeight); +#ifdef __APPLE__ + // Get framebuffer size of current window + // NOTE: Required to handle HighDPI display correctly on OSX because framebuffer + // is automatically reasized to adapt to new DPI. + // When OS does that, it can be detected using GLFW3 callback: glfwSetFramebufferSizeCallback() + int fbWidth, fbHeight; + glfwGetFramebufferSize(window, &fbWidth, &fbHeight); + rlViewport(renderOffsetX/2, renderOffsetY/2, fbWidth - renderOffsetX, fbHeight - renderOffsetY); +#else // Initialize screen viewport (area of the screen that you will actually draw to) // NOTE: Viewport must be recalculated if screen is resized rlViewport(renderOffsetX/2, renderOffsetY/2, renderWidth - renderOffsetX, renderHeight - renderOffsetY); +#endif // Initialize internal projection and modelview matrices // NOTE: Default to orthographic projection mode with top-left corner at (0,0) From a008d49230c0f7543d8921e68f757dea7934a8c5 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Fri, 29 Jul 2016 13:17:50 +0200 Subject: [PATCH 009/102] Corrected some issues to compile with MSC --- src/audio.c | 4 ++++ src/external/jar_xm.h | 2 +- src/rlgl.c | 47 ++++++++++++++++++++++++++++++++++--------- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/audio.c b/src/audio.c index 3c618dd24..3e2d8347b 100644 --- a/src/audio.c +++ b/src/audio.c @@ -78,6 +78,10 @@ #define JAR_MOD_IMPLEMENTATION #include "external/jar_mod.h" // MOD loading functions +#ifdef _MSC_VER + #undef bool +#endif + //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- diff --git a/src/external/jar_xm.h b/src/external/jar_xm.h index f9ddb5117..02463e088 100644 --- a/src/external/jar_xm.h +++ b/src/external/jar_xm.h @@ -1435,7 +1435,7 @@ static void jar_xm_volume_slide(jar_xm_channel_context_t* ch, uint8_t rawval) { } } -static float jar_xm_envelope_lerp(jar_xm_envelope_point_t* restrict a, jar_xm_envelope_point_t* restrict b, uint16_t pos) { +static float jar_xm_envelope_lerp(jar_xm_envelope_point_t* a, jar_xm_envelope_point_t* b, uint16_t pos) { /* Linear interpolation between two envelope points */ if(pos <= a->frame) return a->value; else if(pos >= b->frame) return b->value; diff --git a/src/rlgl.c b/src/rlgl.c index 2b551469c..d027495f9 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -415,14 +415,14 @@ void rlMatrixMode(int mode) } } -void rlFrustum(double left, double right, double bottom, double top, double near, double far) +void rlFrustum(double left, double right, double bottom, double top, double zNear, double zFar) { - glFrustum(left, right, bottom, top, near, far); + glFrustum(left, right, bottom, top, zNear, zFar); } -void rlOrtho(double left, double right, double bottom, double top, double near, double far) +void rlOrtho(double left, double right, double bottom, double top, double zNear, double zFar) { - glOrtho(left, right, bottom, top, near, far); + glOrtho(left, right, bottom, top, zNear, zFar); } void rlPushMatrix(void) { glPushMatrix(); } @@ -1056,8 +1056,13 @@ void rlglInit(int width, int height) // We get a list of available extensions and we check for some of them (compressed textures) // NOTE: We don't need to check again supported extensions but we do (GLAD already dealt with that) glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); - const char *extList[numExt]; +#ifdef _MSC_VER + const char **extList = malloc(sizeof(const char *)*numExt); +#else + const char *extList[numExt]; +#endif + for (int i = 0; i < numExt; i++) extList[i] = (char *)glGetStringi(GL_EXTENSIONS, i); #elif defined(GRAPHICS_API_OPENGL_ES2) @@ -1137,6 +1142,10 @@ void rlglInit(int width, int height) if (strcmp(extList[i], (const char *)"GL_KHR_texture_compression_astc_hdr") == 0) texCompASTCSupported = true; } +#ifdef _MSC_VER + free(extList); +#endif + #if defined(GRAPHICS_API_OPENGL_ES2) if (vaoSupported) TraceLog(INFO, "[EXTENSION] VAO extension detected, VAO functions initialized successfully"); else TraceLog(WARNING, "[EXTENSION] VAO extension not found, VAO usage not supported"); @@ -2891,11 +2900,18 @@ static unsigned int LoadShaderProgram(const char *vShaderStr, const char *fShade glGetShaderiv(vertexShader, GL_INFO_LOG_LENGTH, &maxLength); +#ifdef _MSC_VER + char *log = malloc(maxLength); +#else char log[maxLength]; - +#endif glGetShaderInfoLog(vertexShader, maxLength, &length, log); TraceLog(INFO, "%s", log); + +#ifdef _MSC_VER + free(log); +#endif } else TraceLog(INFO, "[VSHDR ID %i] Vertex shader compiled successfully", vertexShader); @@ -2912,11 +2928,18 @@ static unsigned int LoadShaderProgram(const char *vShaderStr, const char *fShade glGetShaderiv(fragmentShader, GL_INFO_LOG_LENGTH, &maxLength); +#ifdef _MSC_VER + char *log = malloc(maxLength); +#else char log[maxLength]; - +#endif glGetShaderInfoLog(fragmentShader, maxLength, &length, log); TraceLog(INFO, "%s", log); + +#ifdef _MSC_VER + free(log); +#endif } else TraceLog(INFO, "[FSHDR ID %i] Fragment shader compiled successfully", fragmentShader); @@ -2950,12 +2973,18 @@ static unsigned int LoadShaderProgram(const char *vShaderStr, const char *fShade glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); +#ifdef _MSC_VER + char *log = malloc(maxLength); +#else char log[maxLength]; - +#endif glGetProgramInfoLog(program, maxLength, &length, log); TraceLog(INFO, "%s", log); - + +#ifdef _MSC_VER + free(log); +#endif glDeleteProgram(program); program = 0; From 8f7cb6fb190834dc07f275e8a4666ec5815c89f6 Mon Sep 17 00:00:00 2001 From: Bil152 Date: Fri, 29 Jul 2016 21:35:57 +0200 Subject: [PATCH 010/102] Code refractoring of music model to be more friendly-user (issue #144) --- src/audio.c | 405 ++++++++++++++++++++++++++++----------------------- src/audio.h | 28 ++-- src/raylib.h | 47 +++--- 3 files changed, 269 insertions(+), 211 deletions(-) diff --git a/src/audio.c b/src/audio.c index 3c618dd24..19a807128 100644 --- a/src/audio.c +++ b/src/audio.c @@ -2,7 +2,7 @@ * * raylib.audio * -* Basic functions to manage Audio: +* Basic functions to manage Audio: * Manage audio device (init/close) * Load and Unload audio files * Play/Stop/Pause/Resume loaded audio @@ -99,8 +99,8 @@ // Types and Structures Definition //---------------------------------------------------------------------------------- -// Used to create custom audio streams that are not bound to a specific file. -// There can be no more than 4 concurrent mixchannels in use. +// Used to create custom audio streams that are not bound to a specific file. +// There can be no more than 4 concurrent mixchannels in use. // This is due to each active mixc being tied to a dedicated mix channel. typedef struct MixChannel { unsigned short sampleRate; // default is 48000 @@ -108,7 +108,7 @@ typedef struct MixChannel { unsigned char mixChannel; // 0-3 or mixA-mixD, each mix channel can receive up to one dedicated audio stream bool floatingPoint; // if false then the short datatype is used instead bool playing; // false if paused - + ALenum alFormat; // OpenAL format specifier ALuint alSource; // OpenAL source ALuint alBuffer[MAX_STREAM_BUFFERS]; // OpenAL sample buffer @@ -121,7 +121,7 @@ typedef struct Music { jar_xm_context_t *xmctx; // XM chiptune context jar_mod_context_t modctx; // MOD chiptune context MixChannel *mixc; // Mix channel - + unsigned int totalSamplesLeft; float totalLengthSeconds; bool loop; @@ -145,7 +145,8 @@ typedef enum { ERROR_UNABLE_TO_OPEN_RRES_FILE = 2048, ERROR_INVALID_RRES_FILE = 4096, ERROR_INVALID_RRES_RESOURCE = 8192, - ERROR_UNINITIALIZED_CHANNELS = 16384 + ERROR_UNINITIALIZED_CHANNELS = 16384, + ERROR_UNINTIALIZED_MUSIC_BUFFER = 32768 } AudioError; #if defined(AUDIO_STANDALONE) @@ -217,7 +218,7 @@ void CloseAudioDevice(void) { for (int index = 0; index < MAX_MUSIC_STREAMS; index++) { - if (musicStreams[index].mixc) StopMusicStream(index); // Stop music streaming and close current stream + if (musicStreams[index].mixc) StopMusicStreamEx(index); // Stop music streaming and close current stream } ALCdevice *device; @@ -236,12 +237,12 @@ void CloseAudioDevice(void) bool IsAudioDeviceReady(void) { ALCcontext *context = alcGetCurrentContext(); - + if (context == NULL) return false; else { ALCdevice *device = alcGetContextsDevice(context); - + if (device == NULL) return false; else return true; } @@ -252,13 +253,13 @@ bool IsAudioDeviceReady(void) //---------------------------------------------------------------------------------- // Init mix channel for streaming -// The mixChannel is what audio muxing channel you want to operate on, 0-3 are the ones available. +// The mixChannel is what audio muxing channel you want to operate on, 0-3 are the ones available. // Each mix channel can only be used one at a time. static MixChannel *InitMixChannel(unsigned short sampleRate, unsigned char mixChannel, unsigned char channels, bool floatingPoint) { if (mixChannel >= MAX_MIX_CHANNELS) return NULL; if (!IsAudioDeviceReady()) InitAudioDevice(); - + if (!mixChannels[mixChannel]) { MixChannel *mixc = (MixChannel *)malloc(sizeof(MixChannel)); @@ -267,7 +268,7 @@ static MixChannel *InitMixChannel(unsigned short sampleRate, unsigned char mixCh mixc->mixChannel = mixChannel; mixc->floatingPoint = floatingPoint; mixChannels[mixChannel] = mixc; - + // Setup OpenAL format if (channels == 1) { @@ -279,17 +280,17 @@ static MixChannel *InitMixChannel(unsigned short sampleRate, unsigned char mixCh if (floatingPoint) mixc->alFormat = AL_FORMAT_STEREO_FLOAT32; else mixc->alFormat = AL_FORMAT_STEREO16; } - + // Create an audio source alGenSources(1, &mixc->alSource); alSourcef(mixc->alSource, AL_PITCH, 1); alSourcef(mixc->alSource, AL_GAIN, 1); alSource3f(mixc->alSource, AL_POSITION, 0, 0, 0); alSource3f(mixc->alSource, AL_VELOCITY, 0, 0, 0); - + // Create Buffer alGenBuffers(MAX_STREAM_BUFFERS, mixc->alBuffer); - + // Fill buffers for (int i = 0; i < MAX_STREAM_BUFFERS; i++) { @@ -305,14 +306,14 @@ static MixChannel *InitMixChannel(unsigned short sampleRate, unsigned char mixCh alBufferData(mixc->alBuffer[i], mixc->alFormat, pcm, MUSIC_BUFFER_SIZE_SHORT*sizeof(short), mixc->sampleRate); } } - + alSourceQueueBuffers(mixc->alSource, MAX_STREAM_BUFFERS, mixc->alBuffer); mixc->playing = true; alSourcePlay(mixc->alSource); - + return mixc; } - + return NULL; } @@ -323,18 +324,18 @@ static void CloseMixChannel(MixChannel *mixc) { alSourceStop(mixc->alSource); mixc->playing = false; - + // Flush out all queued buffers ALuint buffer = 0; int queued = 0; alGetSourcei(mixc->alSource, AL_BUFFERS_QUEUED, &queued); - + while (queued > 0) { alSourceUnqueueBuffers(mixc->alSource, 1, &buffer); queued--; } - + // Delete source and buffers alDeleteSources(1, &mixc->alSource); alDeleteBuffers(MAX_STREAM_BUFFERS, mixc->alBuffer); @@ -350,30 +351,30 @@ static void CloseMixChannel(MixChannel *mixc) static int BufferMixChannel(MixChannel *mixc, void *data, int numberElements) { if (!mixc || (mixChannels[mixc->mixChannel] != mixc)) return 0; // When there is two channels there must be an even number of samples - - if (!data || !numberElements) - { + + if (!data || !numberElements) + { // Pauses audio until data is given if (mixc->playing) { alSourcePause(mixc->alSource); mixc->playing = false; } - + return 0; } else if (!mixc->playing) - { + { // Restart audio otherwise alSourcePlay(mixc->alSource); mixc->playing = true; } ALuint buffer = 0; - + alSourceUnqueueBuffers(mixc->alSource, 1, &buffer); if (!buffer) return 0; - + if (mixc->floatingPoint) { // Process float buffers @@ -386,9 +387,9 @@ static int BufferMixChannel(MixChannel *mixc, void *data, int numberElements) short *ptr = (short *)data; alBufferData(buffer, mixc->alFormat, ptr, numberElements*sizeof(short), mixc->sampleRate); } - + alSourceQueueBuffers(mixc->alSource, 1, &buffer); - + return numberElements; } @@ -435,7 +436,7 @@ int InitRawMixChannel(int sampleRate, int channels, bool floatingPoint) return -1; } } - + if (InitMixChannel(sampleRate, mixIndex, channels, floatingPoint)) return mixIndex; else { @@ -451,13 +452,13 @@ int InitRawMixChannel(int sampleRate, int channels, bool floatingPoint) int BufferRawAudioContext(int ctx, void *data, unsigned short numberElements) { int numBuffered = 0; - + if (ctx >= 0) { MixChannel *mixc = mixChannels[ctx]; numBuffered = BufferMixChannel(mixc, data, numberElements); } - + return numBuffered; } @@ -482,12 +483,12 @@ Sound LoadSound(char *fileName) // Audio file loading // NOTE: Buffer space is allocated inside function, Wave must be freed - if (strcmp(GetExtension(fileName), "wav") == 0) wave = LoadWAV(fileName); - else if (strcmp(GetExtension(fileName), "ogg") == 0) wave = LoadOGG(fileName); + if (strcmp(GetExtension(fileName),"wav") == 0) wave = LoadWAV(fileName); + else if (strcmp(GetExtension(fileName),"ogg") == 0) wave = LoadOGG(fileName); else { TraceLog(WARNING, "[%s] Sound extension not recognized, it can't be loaded", fileName); - + // TODO: Find a better way to register errors (similar to glGetError()) lastAudioError = ERROR_EXTENSION_NOT_RECOGNIZED; } @@ -528,7 +529,7 @@ Sound LoadSound(char *fileName) // Attach sound buffer to source alSourcei(source, AL_BUFFER, buffer); - TraceLog(INFO, "[SND ID %i][BUFR ID %i] Sound file loaded successfully (SampleRate: %i, BitRate: %i, Channels: %i)", source, buffer, wave.sampleRate, wave.bitsPerSample, wave.channels); + TraceLog(INFO, "[%s] Sound file loaded successfully (SampleRate: %i, BitRate: %i, Channels: %i)", fileName, wave.sampleRate, wave.bitsPerSample, wave.channels); // Unallocate WAV data UnloadWave(wave); @@ -602,9 +603,9 @@ Sound LoadSoundFromRES(const char *rresName, int resId) #if defined(AUDIO_STANDALONE) TraceLog(WARNING, "Sound loading from rRES resource file not supported on standalone mode"); #else - + bool found = false; - + char id[4]; // rRES file identifier unsigned char version; // rRES file version and subversion char useless; // rRES header reserved data @@ -758,8 +759,8 @@ void UnloadSound(Sound sound) { alDeleteSources(1, &sound.source); alDeleteBuffers(1, &sound.buffer); - - TraceLog(INFO, "[SND ID %i][BUFR ID %i] Unloaded sound data from RAM", sound.source, sound.buffer); + + TraceLog(INFO, "Unloaded sound data"); } // Play a sound @@ -823,138 +824,182 @@ void SetSoundPitch(Sound sound, float pitch) // Module Functions Definition - Music loading and stream playing (.OGG) //---------------------------------------------------------------------------------- +MusicBuffer LoadMusicBufferStream(char *fileName, int index) +{ + MusicBuffer buffer = { 0 }; + + if(index > MAX_MUSIC_STREAMS) + { + TraceLog("[%s] index is greater than MAX_MUSIC_STREAMS", ERROR); + return; // error + } + + buffer.fileName = fileName; + buffer.index = index; + + + if (musicStreams[buffer.index].stream || musicStreams[buffer.index].xmctx) return; // error + + return buffer; +} + // Start music playing (open stream) // returns 0 on success or error code -int PlayMusicStream(int index, char *fileName) +int PlayMusicStream(MusicBuffer musicBuffer) { + if(musicBuffer.fileName == 0) + { + return ERROR_UNINTIALIZED_MUSIC_BUFFER; + } int mixIndex; - - if (musicStreams[index].stream || musicStreams[index].xmctx) return ERROR_UNINITIALIZED_CHANNELS; // error - for (mixIndex = 0; mixIndex < MAX_MIX_CHANNELS; mixIndex++) // find empty mix channel slot { if (mixChannels[mixIndex] == NULL) break; else if (mixIndex == (MAX_MIX_CHANNELS - 1)) return ERROR_OUT_OF_MIX_CHANNELS; // error } - - if (strcmp(GetExtension(fileName), "ogg") == 0) + + if (strcmp(GetExtension(musicBuffer.fileName),"ogg") == 0) { // Open audio stream - musicStreams[index].stream = stb_vorbis_open_filename(fileName, NULL, NULL); + musicStreams[musicBuffer.index].stream = stb_vorbis_open_filename(musicBuffer.fileName, NULL, NULL); - if (musicStreams[index].stream == NULL) + if (musicStreams[musicBuffer.index].stream == NULL) { - TraceLog(WARNING, "[%s] OGG audio file could not be opened", fileName); + TraceLog(WARNING, "[%s] OGG audio file could not be opened", musicBuffer.fileName); return ERROR_LOADING_OGG; // error } else { // Get file info - stb_vorbis_info info = stb_vorbis_get_info(musicStreams[index].stream); + stb_vorbis_info info = stb_vorbis_get_info(musicStreams[musicBuffer.index].stream); - TraceLog(DEBUG, "[%s] Ogg sample rate: %i", fileName, info.sample_rate); - TraceLog(DEBUG, "[%s] Ogg channels: %i", fileName, info.channels); - TraceLog(DEBUG, "[%s] Temp memory required: %i", fileName, info.temp_memory_required); + TraceLog(INFO, "[%s] Ogg sample rate: %i", musicBuffer.fileName, info.sample_rate); + TraceLog(INFO, "[%s] Ogg channels: %i", musicBuffer.fileName, info.channels); + TraceLog(DEBUG, "[%s] Temp memory required: %i", musicBuffer.fileName, info.temp_memory_required); + + musicStreams[musicBuffer.index].loop = true; // We loop by default + musicStreams[musicBuffer.index].enabled = true; + + + musicStreams[musicBuffer.index].totalSamplesLeft = (unsigned int)stb_vorbis_stream_length_in_samples(musicStreams[musicBuffer.index].stream) * info.channels; + musicStreams[musicBuffer.index].totalLengthSeconds = stb_vorbis_stream_length_in_seconds(musicStreams[musicBuffer.index].stream); - musicStreams[index].loop = true; // We loop by default - musicStreams[index].enabled = true; - - musicStreams[index].totalSamplesLeft = (unsigned int)stb_vorbis_stream_length_in_samples(musicStreams[index].stream) * info.channels; - musicStreams[index].totalLengthSeconds = stb_vorbis_stream_length_in_seconds(musicStreams[index].stream); - if (info.channels == 2) { - musicStreams[index].mixc = InitMixChannel(info.sample_rate, mixIndex, 2, false); - musicStreams[index].mixc->playing = true; + musicStreams[musicBuffer.index].mixc = InitMixChannel(info.sample_rate, mixIndex, 2, false); + musicStreams[musicBuffer.index].mixc->playing = true; } else { - musicStreams[index].mixc = InitMixChannel(info.sample_rate, mixIndex, 1, false); - musicStreams[index].mixc->playing = true; + musicStreams[musicBuffer.index].mixc = InitMixChannel(info.sample_rate, mixIndex, 1, false); + musicStreams[musicBuffer.index].mixc->playing = true; } - - if (!musicStreams[index].mixc) return ERROR_LOADING_OGG; // error + + if (!musicStreams[musicBuffer.index].mixc) return ERROR_LOADING_OGG; // error } } - else if (strcmp(GetExtension(fileName), "xm") == 0) + else if (strcmp(GetExtension(musicBuffer.fileName),"xm") == 0) { // only stereo is supported for xm - if (!jar_xm_create_context_from_file(&musicStreams[index].xmctx, 48000, fileName)) + if (!jar_xm_create_context_from_file(&musicStreams[musicBuffer.index].xmctx, 48000, musicBuffer.fileName)) { - musicStreams[index].chipTune = true; - musicStreams[index].loop = true; - jar_xm_set_max_loop_count(musicStreams[index].xmctx, 0); // infinite number of loops - musicStreams[index].totalSamplesLeft = (unsigned int)jar_xm_get_remaining_samples(musicStreams[index].xmctx); - musicStreams[index].totalLengthSeconds = ((float)musicStreams[index].totalSamplesLeft)/48000.0f; - musicStreams[index].enabled = true; - - TraceLog(INFO, "[%s] XM number of samples: %i", fileName, musicStreams[index].totalSamplesLeft); - TraceLog(INFO, "[%s] XM track length: %11.6f sec", fileName, musicStreams[index].totalLengthSeconds); - - musicStreams[index].mixc = InitMixChannel(48000, mixIndex, 2, true); - - if (!musicStreams[index].mixc) return ERROR_XM_CONTEXT_CREATION; // error - - musicStreams[index].mixc->playing = true; + musicStreams[musicBuffer.index].chipTune = true; + musicStreams[musicBuffer.index].loop = true; + jar_xm_set_max_loop_count(musicStreams[musicBuffer.index].xmctx, 0); // infinite number of loops + musicStreams[musicBuffer.index].totalSamplesLeft = (unsigned int)jar_xm_get_remaining_samples(musicStreams[musicBuffer.index].xmctx); + musicStreams[musicBuffer.index].totalLengthSeconds = ((float)musicStreams[musicBuffer.index].totalSamplesLeft)/48000.0f; + musicStreams[musicBuffer.index].enabled = true; + + TraceLog(INFO, "[%s] XM number of samples: %i", musicBuffer.fileName, musicStreams[musicBuffer.index].totalSamplesLeft); + TraceLog(INFO, "[%s] XM track length: %11.6f sec", musicBuffer.fileName, musicStreams[musicBuffer.index].totalLengthSeconds); + + musicStreams[musicBuffer.index].mixc = InitMixChannel(48000, mixIndex, 2, true); + + if (!musicStreams[musicBuffer.index].mixc) return ERROR_XM_CONTEXT_CREATION; // error + + musicStreams[musicBuffer.index].mixc->playing = true; } else { - TraceLog(WARNING, "[%s] XM file could not be opened", fileName); + TraceLog(WARNING, "[%s] XM file could not be opened", musicBuffer.fileName); return ERROR_LOADING_XM; // error } } - else if (strcmp(GetExtension(fileName), "mod") == 0) + else if (strcmp(GetExtension(musicBuffer.fileName),"mod") == 0) { - jar_mod_init(&musicStreams[index].modctx); - - if (jar_mod_load_file(&musicStreams[index].modctx, fileName)) + jar_mod_init(&musicStreams[musicBuffer.index].modctx); + + if (jar_mod_load_file(&musicStreams[musicBuffer.index].modctx, musicBuffer.fileName)) { - musicStreams[index].chipTune = true; - musicStreams[index].loop = true; - musicStreams[index].totalSamplesLeft = (unsigned int)jar_mod_max_samples(&musicStreams[index].modctx); - musicStreams[index].totalLengthSeconds = ((float)musicStreams[index].totalSamplesLeft)/48000.0f; - musicStreams[index].enabled = true; - - TraceLog(INFO, "[%s] MOD number of samples: %i", fileName, musicStreams[index].totalSamplesLeft); - TraceLog(INFO, "[%s] MOD track length: %11.6f sec", fileName, musicStreams[index].totalLengthSeconds); - - musicStreams[index].mixc = InitMixChannel(48000, mixIndex, 2, false); - - if (!musicStreams[index].mixc) return ERROR_MOD_CONTEXT_CREATION; // error - - musicStreams[index].mixc->playing = true; + musicStreams[musicBuffer.index].chipTune = true; + musicStreams[musicBuffer.index].loop = true; + musicStreams[musicBuffer.index].totalSamplesLeft = (unsigned int)jar_mod_max_samples(&musicStreams[musicBuffer.index].modctx); + musicStreams[musicBuffer.index].totalLengthSeconds = ((float)musicStreams[musicBuffer.index].totalSamplesLeft)/48000.0f; + musicStreams[musicBuffer.index].enabled = true; + + TraceLog(INFO, "[%s] MOD number of samples: %i", musicBuffer.fileName, musicStreams[musicBuffer.index].totalSamplesLeft); + TraceLog(INFO, "[%s] MOD track length: %11.6f sec", musicBuffer.fileName, musicStreams[musicBuffer.index].totalLengthSeconds); + + musicStreams[musicBuffer.index].mixc = InitMixChannel(48000, mixIndex, 2, false); + + if (!musicStreams[musicBuffer.index].mixc) return ERROR_MOD_CONTEXT_CREATION; // error + + musicStreams[musicBuffer.index].mixc->playing = true; } else { - TraceLog(WARNING, "[%s] MOD file could not be opened", fileName); + TraceLog(WARNING, "[%s] MOD file could not be opened", musicBuffer.fileName); return ERROR_LOADING_MOD; // error } } else { - TraceLog(WARNING, "[%s] Music extension not recognized, it can't be loaded", fileName); + TraceLog(WARNING, "[%s] Music extension not recognized, it can't be loaded", musicBuffer.fileName); return ERROR_EXTENSION_NOT_RECOGNIZED; // error } - + return 0; // normal return } // Stop music playing for individual music index of musicStreams array (close stream) -void StopMusicStream(int index) +void StopMusicStream(MusicBuffer musicBuffer) +{ + if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) + { + CloseMixChannel(musicStreams[musicBuffer.index].mixc); + + if (musicStreams[musicBuffer.index].xmctx) + jar_xm_free_context(musicStreams[musicBuffer.index].xmctx); + else if (musicStreams[musicBuffer.index].modctx.mod_loaded) + jar_mod_unload(&musicStreams[musicBuffer.index].modctx); + else + stb_vorbis_close(musicStreams[musicBuffer.index].stream); + + musicStreams[musicBuffer.index].enabled = false; + + if (musicStreams[musicBuffer.index].stream || musicStreams[musicBuffer.index].xmctx) + { + musicStreams[musicBuffer.index].stream = NULL; + musicStreams[musicBuffer.index].xmctx = NULL; + } + } +} + +void StopMusicStreamEx(int index) { if (index < MAX_MUSIC_STREAMS && musicStreams[index].mixc) { CloseMixChannel(musicStreams[index].mixc); - + if (musicStreams[index].xmctx) jar_xm_free_context(musicStreams[index].xmctx); else if (musicStreams[index].modctx.mod_loaded) jar_mod_unload(&musicStreams[index].modctx); else stb_vorbis_close(musicStreams[index].stream); - + musicStreams[index].enabled = false; - + if (musicStreams[index].stream || musicStreams[index].xmctx) { musicStreams[index].stream = NULL; @@ -964,47 +1009,47 @@ void StopMusicStream(int index) } // Update (re-fill) music buffers if data already processed -void UpdateMusicStream(int index) +void UpdateMusicStream(MusicBuffer musicBuffer) { ALenum state; bool active = true; ALint processed = 0; - + // Determine if music stream is ready to be written - alGetSourcei(musicStreams[index].mixc->alSource, AL_BUFFERS_PROCESSED, &processed); - - if (musicStreams[index].mixc->playing && (index < MAX_MUSIC_STREAMS) && musicStreams[index].enabled && musicStreams[index].mixc && (processed > 0)) + alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_BUFFERS_PROCESSED, &processed); + + if (musicStreams[musicBuffer.index].mixc->playing && (musicBuffer.index < MAX_MUSIC_STREAMS) && musicStreams[musicBuffer.index].enabled && musicStreams[musicBuffer.index].mixc && (processed > 0)) { - active = BufferMusicStream(index, processed); - - if (!active && musicStreams[index].loop) + active = BufferMusicStream(musicBuffer.index, processed); + + if (!active && musicStreams[musicBuffer.index].loop) { - if (musicStreams[index].chipTune) + if (musicStreams[musicBuffer.index].chipTune) { - if(musicStreams[index].modctx.mod_loaded) jar_mod_seek_start(&musicStreams[index].modctx); - - musicStreams[index].totalSamplesLeft = musicStreams[index].totalLengthSeconds*48000.0f; + if(musicStreams[musicBuffer.index].modctx.mod_loaded) jar_mod_seek_start(&musicStreams[musicBuffer.index].modctx); + + musicStreams[musicBuffer.index].totalSamplesLeft = musicStreams[musicBuffer.index].totalLengthSeconds*48000.0f; } else { - stb_vorbis_seek_start(musicStreams[index].stream); - musicStreams[index].totalSamplesLeft = stb_vorbis_stream_length_in_samples(musicStreams[index].stream)*musicStreams[index].mixc->channels; + stb_vorbis_seek_start(musicStreams[musicBuffer.index].stream); + musicStreams[musicBuffer.index].totalSamplesLeft = stb_vorbis_stream_length_in_samples(musicStreams[musicBuffer.index].stream)*musicStreams[musicBuffer.index].mixc->channels; } - + // Determine if music stream is ready to be written - alGetSourcei(musicStreams[index].mixc->alSource, AL_BUFFERS_PROCESSED, &processed); - - active = BufferMusicStream(index, processed); + alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_BUFFERS_PROCESSED, &processed); + + active = BufferMusicStream(musicBuffer.index, processed); } if (alGetError() != AL_NO_ERROR) TraceLog(WARNING, "Error buffering data..."); - - alGetSourcei(musicStreams[index].mixc->alSource, AL_SOURCE_STATE, &state); - if (state != AL_PLAYING && active) alSourcePlay(musicStreams[index].mixc->alSource); + alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_SOURCE_STATE, &state); + + if (state != AL_PLAYING && active) alSourcePlay(musicStreams[musicBuffer.index].mixc->alSource); + + if (!active) StopMusicStream(musicBuffer); - if (!active) StopMusicStream(index); - } } @@ -1012,57 +1057,57 @@ void UpdateMusicStream(int index) int GetMusicStreamCount(void) { int musicCount = 0; - + // Find empty music slot for (int musicIndex = 0; musicIndex < MAX_MUSIC_STREAMS; musicIndex++) { if(musicStreams[musicIndex].stream != NULL || musicStreams[musicIndex].chipTune) musicCount++; } - + return musicCount; } // Pause music playing -void PauseMusicStream(int index) +void PauseMusicStream(MusicBuffer musicBuffer) { // Pause music stream if music available! - if (index < MAX_MUSIC_STREAMS && musicStreams[index].mixc && musicStreams[index].enabled) + if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc && musicStreams[musicBuffer.index].enabled) { TraceLog(INFO, "Pausing music stream"); - alSourcePause(musicStreams[index].mixc->alSource); - musicStreams[index].mixc->playing = false; + alSourcePause(musicStreams[musicBuffer.index].mixc->alSource); + musicStreams[musicBuffer.index].mixc->playing = false; } } // Resume music playing -void ResumeMusicStream(int index) +void ResumeMusicStream(MusicBuffer musicBuffer) { // Resume music playing... if music available! ALenum state; - - if (index < MAX_MUSIC_STREAMS && musicStreams[index].mixc) + + if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) { - alGetSourcei(musicStreams[index].mixc->alSource, AL_SOURCE_STATE, &state); - + alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_SOURCE_STATE, &state); + if (state == AL_PAUSED) { TraceLog(INFO, "Resuming music stream"); - alSourcePlay(musicStreams[index].mixc->alSource); - musicStreams[index].mixc->playing = true; + alSourcePlay(musicStreams[musicBuffer.index].mixc->alSource); + musicStreams[musicBuffer.index].mixc->playing = true; } } } // Check if any music is playing -bool IsMusicPlaying(int index) +bool IsMusicPlaying(MusicBuffer musicBuffer) { bool playing = false; ALint state; - - if (index < MAX_MUSIC_STREAMS && musicStreams[index].mixc) + + if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) { - alGetSourcei(musicStreams[index].mixc->alSource, AL_SOURCE_STATE, &state); - + alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_SOURCE_STATE, &state); + if (state == AL_PLAYING) playing = true; } @@ -1070,57 +1115,57 @@ bool IsMusicPlaying(int index) } // Set volume for music -void SetMusicVolume(int index, float volume) +void SetMusicVolume(MusicBuffer musicBuffer, float volume) { - if (index < MAX_MUSIC_STREAMS && musicStreams[index].mixc) + if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) { - alSourcef(musicStreams[index].mixc->alSource, AL_GAIN, volume); + alSourcef(musicStreams[musicBuffer.index].mixc->alSource, AL_GAIN, volume); } } // Set pitch for music -void SetMusicPitch(int index, float pitch) +void SetMusicPitch(MusicBuffer musicBuffer, float pitch) { - if (index < MAX_MUSIC_STREAMS && musicStreams[index].mixc) + if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) { - alSourcef(musicStreams[index].mixc->alSource, AL_PITCH, pitch); + alSourcef(musicStreams[musicBuffer.index].mixc->alSource, AL_PITCH, pitch); } } // Get music time length (in seconds) -float GetMusicTimeLength(int index) +float GetMusicTimeLength(MusicBuffer musicBuffer) { float totalSeconds; - - if (musicStreams[index].chipTune) totalSeconds = (float)musicStreams[index].totalLengthSeconds; - else totalSeconds = stb_vorbis_stream_length_in_seconds(musicStreams[index].stream); + + if (musicStreams[musicBuffer.index].chipTune) totalSeconds = (float)musicStreams[musicBuffer.index].totalLengthSeconds; + else totalSeconds = stb_vorbis_stream_length_in_seconds(musicStreams[musicBuffer.index].stream); return totalSeconds; } // Get current music time played (in seconds) -float GetMusicTimePlayed(int index) +float GetMusicTimePlayed(MusicBuffer musicBuffer) { float secondsPlayed = 0.0f; - - if (index < MAX_MUSIC_STREAMS && musicStreams[index].mixc) + + if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) { - if (musicStreams[index].chipTune && musicStreams[index].xmctx) + if (musicStreams[musicBuffer.index].chipTune && musicStreams[musicBuffer.index].xmctx) { uint64_t samples; - jar_xm_get_position(musicStreams[index].xmctx, NULL, NULL, NULL, &samples); - secondsPlayed = (float)samples/(48000.0f*musicStreams[index].mixc->channels); // Not sure if this is the correct value + jar_xm_get_position(musicStreams[musicBuffer.index].xmctx, NULL, NULL, NULL, &samples); + secondsPlayed = (float)samples/(48000.0f*musicStreams[musicBuffer.index].mixc->channels); // Not sure if this is the correct value } - else if(musicStreams[index].chipTune && musicStreams[index].modctx.mod_loaded) + else if(musicStreams[musicBuffer.index].chipTune && musicStreams[musicBuffer.index].modctx.mod_loaded) { - long numsamp = jar_mod_current_samples(&musicStreams[index].modctx); + long numsamp = jar_mod_current_samples(&musicStreams[musicBuffer.index].modctx); secondsPlayed = (float)numsamp/(48000.0f); } else { - int totalSamples = stb_vorbis_stream_length_in_samples(musicStreams[index].stream)*musicStreams[index].mixc->channels; - int samplesPlayed = totalSamples - musicStreams[index].totalSamplesLeft; - secondsPlayed = (float)samplesPlayed/(musicStreams[index].mixc->sampleRate*musicStreams[index].mixc->channels); + int totalSamples = stb_vorbis_stream_length_in_samples(musicStreams[musicBuffer.index].stream)*musicStreams[musicBuffer.index].mixc->channels; + int samplesPlayed = totalSamples - musicStreams[musicBuffer.index].totalSamplesLeft; + secondsPlayed = (float)samplesPlayed/(musicStreams[musicBuffer.index].mixc->sampleRate*musicStreams[musicBuffer.index].mixc->channels); } } @@ -1136,10 +1181,10 @@ static bool BufferMusicStream(int index, int numBuffers) { short pcm[MUSIC_BUFFER_SIZE_SHORT]; float pcmf[MUSIC_BUFFER_SIZE_FLOAT]; - + int size = 0; // Total size of data steamed in L+R samples for xm floats, individual L or R for ogg shorts bool active = true; // We can get more data from stream (not finished) - + if (musicStreams[index].chipTune) // There is no end of stream for xmfiles, once the end is reached zeros are generated for non looped chiptunes. { for (int i = 0; i < numBuffers; i++) @@ -1148,7 +1193,7 @@ static bool BufferMusicStream(int index, int numBuffers) { if (musicStreams[index].totalSamplesLeft >= MUSIC_BUFFER_SIZE_SHORT) size = MUSIC_BUFFER_SIZE_SHORT/2; else size = musicStreams[index].totalSamplesLeft/2; - + jar_mod_fillbuffer(&musicStreams[index].modctx, pcm, size, 0 ); BufferMixChannel(musicStreams[index].mixc, pcm, size*2); } @@ -1156,13 +1201,13 @@ static bool BufferMusicStream(int index, int numBuffers) { if (musicStreams[index].totalSamplesLeft >= MUSIC_BUFFER_SIZE_FLOAT) size = MUSIC_BUFFER_SIZE_FLOAT/2; else size = musicStreams[index].totalSamplesLeft/2; - + jar_xm_generate_samples(musicStreams[index].xmctx, pcmf, size); // reads 2*readlen shorts and moves them to buffer+size memory location BufferMixChannel(musicStreams[index].mixc, pcmf, size*2); } musicStreams[index].totalSamplesLeft -= size; - + if (musicStreams[index].totalSamplesLeft <= 0) { active = false; @@ -1174,13 +1219,13 @@ static bool BufferMusicStream(int index, int numBuffers) { if (musicStreams[index].totalSamplesLeft >= MUSIC_BUFFER_SIZE_SHORT) size = MUSIC_BUFFER_SIZE_SHORT; else size = musicStreams[index].totalSamplesLeft; - + for (int i = 0; i < numBuffers; i++) { int streamedBytes = stb_vorbis_get_samples_short_interleaved(musicStreams[index].stream, musicStreams[index].mixc->channels, pcm, size); BufferMixChannel(musicStreams[index].mixc, pcm, streamedBytes * musicStreams[index].mixc->channels); musicStreams[index].totalSamplesLeft -= streamedBytes * musicStreams[index].mixc->channels; - + if (musicStreams[index].totalSamplesLeft <= 0) { active = false; @@ -1367,8 +1412,8 @@ static Wave LoadOGG(char *fileName) static void UnloadWave(Wave wave) { free(wave.data); - - TraceLog(INFO, "Unloaded wave data from RAM"); + + TraceLog(INFO, "Unloaded wave data"); } // Some required functions for audio standalone module version diff --git a/src/audio.h b/src/audio.h index b68509113..d39162b5b 100644 --- a/src/audio.h +++ b/src/audio.h @@ -2,7 +2,7 @@ * * raylib.audio * -* Basic functions to manage Audio: +* Basic functions to manage Audio: * Manage audio device (init/close) * Load and Unload audio files * Play/Stop/Pause/Resume loaded audio @@ -75,6 +75,11 @@ typedef struct Wave { short channels; } Wave; +typedef struct MusicBuffer { + char *fileName; + int index; // index in musicStreams +} MusicBuffer; + #ifdef __cplusplus extern "C" { // Prevents name mangling of functions #endif @@ -102,16 +107,17 @@ bool IsSoundPlaying(Sound sound); // Check if a so void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) -int PlayMusicStream(int index, char *fileName); // Start music playing (open stream) -void UpdateMusicStream(int index); // Updates buffers for music streaming -void StopMusicStream(int index); // Stop music playing (close stream) -void PauseMusicStream(int index); // Pause music playing -void ResumeMusicStream(int index); // Resume playing paused music -bool IsMusicPlaying(int index); // Check if music is playing -void SetMusicVolume(int index, float volume); // Set volume for music (1.0 is max level) -void SetMusicPitch(int index, float pitch); // Set pitch for a music (1.0 is base level) -float GetMusicTimeLength(int index); // Get music time length (in seconds) -float GetMusicTimePlayed(int index); // Get current music time played (in seconds) +MusicBuffer LoadMusicBufferStream(char *fileName, int index); +int PlayMusicStream(MusicBuffer buffer); // Start music playing (open stream) +void UpdateMusicStream(MusicBuffer buffer); // Updates buffers for music streaming +void StopMusicStream(MusicBuffer buffer); // Stop music playing (close stream) +void PauseMusicStream(MusicBuffer buffer); // Pause music playing +void ResumeMusicStream(MusicBuffer buffer); // Resume playing paused music +bool IsMusicPlaying(MusicBuffer buffer); // Check if music is playing +void SetMusicVolume(MusicBuffer buffer float volume); // Set volume for music (1.0 is max level) +void SetMusicPitch(MusicBuffer buffer, float pitch); // Set pitch for a music (1.0 is base level) +float GetMusicTimeLength(MusicBuffer buffer); // Get music time length (in seconds) +float GetMusicTimePlayed(MusicBuffer buffer); // Get current music time played (in seconds) int GetMusicStreamCount(void); // Get number of streams loaded int InitRawMixChannel(int sampleRate, int channels, bool floatingPoint); // Initialize raw audio mix channel for audio buffering diff --git a/src/raylib.h b/src/raylib.h index fee6aa910..1966f75ed 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -397,7 +397,7 @@ typedef struct Mesh { // Shader type (generic shader) typedef struct Shader { unsigned int id; // Shader program id - + // Vertex attributes locations (default locations) int vertexLoc; // Vertex attribute location point (default-location = 0) int texcoordLoc; // Texcoord attribute location point (default-location = 1) @@ -409,7 +409,7 @@ typedef struct Shader { // Uniform locations int mvpLoc; // ModelView-Projection matrix uniform location point (vertex shader) int tintColorLoc; // Diffuse color uniform location point (fragment shader) - + // Texture map locations (generic for any kind of map) int mapTexture0Loc; // Map texture uniform location point (default-texture-unit = 0) int mapTexture1Loc; // Map texture uniform location point (default-texture-unit = 1) @@ -423,11 +423,11 @@ typedef struct Material { Texture2D texDiffuse; // Diffuse texture (binded to shader mapTexture0Loc) Texture2D texNormal; // Normal texture (binded to shader mapTexture1Loc) Texture2D texSpecular; // Specular texture (binded to shader mapTexture2Loc) - + Color colDiffuse; // Diffuse color Color colAmbient; // Ambient color Color colSpecular; // Specular color - + float glossiness; // Glossiness level (Ranges from 0 to 1000) } Material; @@ -443,14 +443,14 @@ typedef struct LightData { unsigned int id; // Light unique id bool enabled; // Light enabled int type; // Light type: LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT - + Vector3 position; // Light position Vector3 target; // Light target: LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target) float radius; // Light attenuation radius light intensity reduced with distance (world distance) - + Color diffuse; // Light diffuse color float intensity; // Light intensity level - + float coneAngle; // Light cone max angle: LIGHT_SPOT } LightData, *Light; @@ -478,6 +478,11 @@ typedef struct Wave { short channels; } Wave; +typedef struct MusicBuffer { + char *fileName; + int index; // index in musicStreams +} MusicBuffer; + // Texture formats // NOTE: Support depends on OpenGL version and platform typedef enum { @@ -647,7 +652,7 @@ void SetMousePosition(Vector2 position); // Set mouse position XY int GetMouseWheelMove(void); // Returns mouse wheel movement Y int GetTouchX(void); // Returns touch position X for touch point 0 (relative to screen size) -int GetTouchY(void); // Returns touch position Y for touch point 0 (relative to screen size) +int GetTouchY(void); // Returns touch position Y for touch point 0 (relative to screen size) Vector2 GetTouchPosition(int index); // Returns touch position XY for a touch point index (relative to screen size) #if defined(PLATFORM_ANDROID) @@ -687,8 +692,8 @@ void SetCameraPanControl(int panKey); // Set camera pan ke void SetCameraAltControl(int altKey); // Set camera alt key to combine with mouse movement (free camera) void SetCameraSmoothZoomControl(int szKey); // Set camera smooth zoom key to combine with mouse (free camera) -void SetCameraMoveControls(int frontKey, int backKey, - int leftKey, int rightKey, +void SetCameraMoveControls(int frontKey, int backKey, + int leftKey, int rightKey, int upKey, int downKey); // Set camera move controls (1st person and 3rd person cameras) void SetCameraMouseSensitivity(float sensitivity); // Set camera mouse sensitivity (1st person and 3rd person cameras) @@ -815,6 +820,7 @@ Model LoadModelFromRES(const char *rresName, int resId); // Load a 3d mod Model LoadHeightmap(Image heightmap, Vector3 size); // Load a heightmap image as a 3d model Model LoadCubicmap(Image cubicmap); // Load a map image as a 3d model (cubes based) void UnloadModel(Model model); // Unload 3d model from memory +Mesh GenMeshCube(float width, float height, float depth); Material LoadMaterial(const char *fileName); // Load material data (from file) Material LoadDefaultMaterial(void); // Load default material (uses default models shader) @@ -896,16 +902,17 @@ bool IsSoundPlaying(Sound sound); // Check if a so void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) -int PlayMusicStream(int index, char *fileName); // Start music playing (open stream) -void UpdateMusicStream(int index); // Updates buffers for music streaming -void StopMusicStream(int index); // Stop music playing (close stream) -void PauseMusicStream(int index); // Pause music playing -void ResumeMusicStream(int index); // Resume playing paused music -bool IsMusicPlaying(int index); // Check if music is playing -void SetMusicVolume(int index, float volume); // Set volume for music (1.0 is max level) -void SetMusicPitch(int index, float pitch); // Set pitch for a music (1.0 is base level) -float GetMusicTimeLength(int index); // Get current music time length (in seconds) -float GetMusicTimePlayed(int index); // Get current music time played (in seconds) +MusicBuffer LoadMusicBufferStream(char *fileName, int index); +int PlayMusicStream(MusicBuffer buffer); // Start music playing (open stream) +void UpdateMusicStream(MusicBuffer buffer); // Updates buffers for music streaming +void StopMusicStream(MusicBuffer buffer); // Stop music playing (close stream) +void PauseMusicStream(MusicBuffer buffer); // Pause music playing +void ResumeMusicStream(MusicBuffer buffer); // Resume playing paused music +bool IsMusicPlaying(MusicBuffer buffer); // Check if music is playing +void SetMusicVolume(MusicBuffer buffer, float volume); // Set volume for music (1.0 is max level) +void SetMusicPitch(MusicBuffer buffer, float pitch); // Set pitch for a music (1.0 is base level) +float GetMusicTimeLength(MusicBuffer buffer); // Get music time length (in seconds) +float GetMusicTimePlayed(MusicBuffer buffer); // Get current music time played (in seconds) int GetMusicStreamCount(void); // Get number of streams loaded #ifdef __cplusplus From 13ebc745fe05d08c58ae2cfee1b73a05b1f70463 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 30 Jul 2016 10:03:32 +0200 Subject: [PATCH 011/102] Corrected bug on Linux linking --- examples/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/Makefile b/examples/Makefile index b4bc0411b..e10b0bb6d 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -139,7 +139,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # libraries for Debian GNU/Linux desktop compiling # requires the following packages: # libglfw3-dev libopenal-dev libegl1-mesa-dev - LIBS = -lraylib -lglfw3 -lGL -lopenal -lm -pthread -ldl + LIBS = -lraylib -lglfw3 -lGL -lopenal -lm -lpthread -ldl # on XWindow could require also below libraries, just uncomment #LIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor else From 02c456432d7f284c41519f6d540ad6c4dfb4a065 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 1 Aug 2016 12:49:17 +0200 Subject: [PATCH 012/102] Complete review of audio system Still some work left... --- examples/audio_module_playing.c | 10 +- examples/audio_music_stream.c | 20 +- src/audio.c | 1129 +++++++++++-------------------- src/audio.h | 36 +- src/external/jar_xm.h | 60 +- src/raylib.h | 32 +- 6 files changed, 483 insertions(+), 804 deletions(-) diff --git a/examples/audio_module_playing.c b/examples/audio_module_playing.c index 6189b866a..07165c762 100644 --- a/examples/audio_module_playing.c +++ b/examples/audio_module_playing.c @@ -57,7 +57,9 @@ int main() // Create a RenderTexture2D to be used for render to texture RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight); - PlayMusicStream(0, "resources/audio/2t2m_spa.xm"); // Play module stream + Music xm = LoadMusicStream("resources/audio/2t2m_spa.xm"); + + PlayMusicStream(xm); float timePlayed = 0.0f; @@ -88,9 +90,9 @@ int main() } // Get timePlayed scaled to bar dimensions - timePlayed = (GetMusicTimePlayed(0)/GetMusicTimeLength(0)*(screenWidth - 40))*2; + timePlayed = (GetMusicTimePlayed(xm)/GetMusicTimeLength(xm)*(screenWidth - 40))*2; - UpdateMusicStream(0); // Update music buffer with new stream data + UpdateMusicStream(xm); // Update music buffer with new stream data //---------------------------------------------------------------------------------- // Draw @@ -129,6 +131,8 @@ int main() UnloadShader(shader); // Unload shader UnloadRenderTexture(target); // Unload render texture + UnloadMusicStream(xm); // Unload music stream buffers from RAM + CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) CloseWindow(); // Close window and OpenGL context diff --git a/examples/audio_music_stream.c b/examples/audio_music_stream.c index e135a6e44..b96b85f7d 100644 --- a/examples/audio_music_stream.c +++ b/examples/audio_music_stream.c @@ -24,7 +24,9 @@ int main() InitAudioDevice(); // Initialize audio device - PlayMusicStream(0, "resources/audio/guitar_noodling.ogg"); // Play music stream + Music music = LoadMusicStream("resources/audio/guitar_noodling.ogg"); + + PlayMusicStream(music); int framesCounter = 0; float timePlayed = 0.0f; @@ -58,12 +60,12 @@ int main() SetMusicVolume(volume); } */ - if (IsWindowMinimized()) PauseMusicStream(0); - else ResumeMusicStream(0); + if (IsWindowMinimized()) PauseMusicStream(music); + else ResumeMusicStream(music); - timePlayed = GetMusicTimePlayed(0)/GetMusicTimeLength(0)*100*4; // We scale by 4 to fit 400 pixels - - UpdateMusicStream(0); // Update music buffer with new stream data + timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*100*4; // We scale by 4 to fit 400 pixels + + UpdateMusicStream(music); // Update music buffer with new stream data //---------------------------------------------------------------------------------- // Draw @@ -83,9 +85,11 @@ int main() // De-Initialization //-------------------------------------------------------------------------------------- - CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) + UnloadMusicStream(music); // Unload music stream buffers from RAM - CloseWindow(); // Close window and OpenGL context + CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) + + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; diff --git a/src/audio.c b/src/audio.c index 93987c6e9..94bbb376e 100644 --- a/src/audio.c +++ b/src/audio.c @@ -55,6 +55,7 @@ #include // Required for: strcmp(), strncmp() #include // Required for: FILE, fopen(), fclose(), fread() +// Tokens defined by OpenAL extension: AL_EXT_float32 #ifndef AL_FORMAT_MONO_FLOAT32 #define AL_FORMAT_MONO_FLOAT32 0x10010 #endif @@ -85,55 +86,47 @@ //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- -#define MAX_STREAM_BUFFERS 2 // Number of buffers for each source -#define MAX_MUSIC_STREAMS 2 // Number of simultanious music sources -#define MAX_MIX_CHANNELS 4 // Number of mix channels (OpenAL sources) +#define MAX_STREAM_BUFFERS 2 // Number of buffers for each audio stream -#if defined(PLATFORM_RPI) || defined(PLATFORM_ANDROID) - // NOTE: On RPI and Android should be lower to avoid frame-stalls - #define MUSIC_BUFFER_SIZE_SHORT 4096*2 // PCM data buffer (short) - 16Kb (RPI) - #define MUSIC_BUFFER_SIZE_FLOAT 4096 // PCM data buffer (float) - 16Kb (RPI) -#else - // NOTE: On HTML5 (emscripten) this is allocated on heap, by default it's only 16MB!...just take care... - #define MUSIC_BUFFER_SIZE_SHORT 4096*8 // PCM data buffer (short) - 64Kb - #define MUSIC_BUFFER_SIZE_FLOAT 4096*4 // PCM data buffer (float) - 64Kb -#endif +// NOTE: Music buffer size is defined by number of samples, independent of sample size +// After some math, considering a sampleRate of 48000, a buffer refill rate of 1/60 seconds +// and double-buffering system, I concluded that a 4096 samples buffer should be enough +// In case of music-stalls, just inclease this number +#define AUDIO_BUFFER_SIZE 4096 // PCM data samples (i.e. short: 32Kb) //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- -// Used to create custom audio streams that are not bound to a specific file. -// There can be no more than 4 concurrent mixchannels in use. -// This is due to each active mixc being tied to a dedicated mix channel. -typedef struct MixChannel { - unsigned short sampleRate; // default is 48000 - unsigned char channels; // 1=mono,2=stereo - unsigned char mixChannel; // 0-3 or mixA-mixD, each mix channel can receive up to one dedicated audio stream - bool floatingPoint; // if false then the short datatype is used instead - bool playing; // false if paused +typedef enum { MUSIC_AUDIO_OGG = 0, MUSIC_MODULE_XM, MUSIC_MODULE_MOD } MusicContextType; - ALenum alFormat; // OpenAL format specifier - ALuint alSource; // OpenAL source - ALuint alBuffer[MAX_STREAM_BUFFERS]; // OpenAL sample buffer -} MixChannel; +// Used to create custom audio streams that are not bound to a specific file. +typedef struct AudioStream { + unsigned int sampleRate; // Frequency (samples per second): default is 48000 + unsigned int sampleSize; // BitDepth (bits per sample): 8, 16, 32 (24 not supported) + unsigned int channels; // Number of channels + + ALenum format; // OpenAL format specifier + ALuint source; // OpenAL source + ALuint buffers[MAX_STREAM_BUFFERS]; // OpenAL buffers (double buffering) +} AudioStream; // Music type (file streaming from memory) -// NOTE: Anything longer than ~10 seconds should be streamed into a mix channel... typedef struct Music { - stb_vorbis *stream; - jar_xm_context_t *xmctx; // XM chiptune context - jar_mod_context_t modctx; // MOD chiptune context - MixChannel *mixc; // Mix channel + MusicContextType ctxType; // Type of music context (OGG, XM, MOD) + stb_vorbis *ctxOgg; // OGG audio context + jar_xm_context_t *ctxXm; // XM chiptune context + jar_mod_context_t ctxMod; // MOD chiptune context - unsigned int totalSamplesLeft; - float totalLengthSeconds; - bool loop; - bool chipTune; // chiptune is loaded? - bool enabled; -} Music; + AudioStream stream; // Audio stream -// Audio errors registered + bool loop; // Repeat music after finish (loop) + unsigned int totalSamples; // Total number of samples + unsigned int samplesLeft; // Number of samples left to end +} MusicData, *Music; + +// Audio errors to register +/* typedef enum { ERROR_RAW_CONTEXT_CREATION = 1, ERROR_XM_CONTEXT_CREATION = 2, @@ -152,6 +145,7 @@ typedef enum { ERROR_UNINITIALIZED_CHANNELS = 16384, ERROR_UNINTIALIZED_MUSIC_BUFFER = 32768 } AudioError; +*/ #if defined(AUDIO_STANDALONE) typedef enum { INFO = 0, ERROR, WARNING, DEBUG, OTHER } TraceLogType; @@ -160,10 +154,7 @@ typedef enum { INFO = 0, ERROR, WARNING, DEBUG, OTHER } TraceLogType; //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- -static Music musicStreams[MAX_MUSIC_STREAMS]; // Current music loaded, up to two can play at the same time -static MixChannel *mixChannels[MAX_MIX_CHANNELS]; // Mix channels currently active (from music streams) - -static int lastAudioError = 0; // Registers last audio error +static int lastAudioError = 0; // Registers last audio error //---------------------------------------------------------------------------------- // Module specific Functions Declaration @@ -172,14 +163,11 @@ static Wave LoadWAV(const char *fileName); // Load WAV file static Wave LoadOGG(char *fileName); // Load OGG file static void UnloadWave(Wave wave); // Unload wave data -static bool BufferMusicStream(int index, int numBuffers); // Fill music buffers with data -static void EmptyMusicStream(int index); // Empty music buffers +static AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); +static void CloseAudioStream(AudioStream stream); // Frees mix channel +static int BufferAudioStream(AudioStream stream, void *data, int numberElements); // Pushes more audio data into mix channel -static MixChannel *InitMixChannel(unsigned short sampleRate, unsigned char mixChannel, unsigned char channels, bool floatingPoint); -static void CloseMixChannel(MixChannel *mixc); // Frees mix channel -static int BufferMixChannel(MixChannel *mixc, void *data, int numberElements); // Pushes more audio data into mix channel -//static void ResampleShortToFloat(short *shorts, float *floats, unsigned short len); // Pass two arrays of the same legnth in -//static void ResampleByteToFloat(char *chars, float *floats, unsigned short len); // Pass two arrays of same length in +static bool BufferMusicStream(Music music, int numBuffersToProcess); // Fill music buffers with data #if defined(AUDIO_STANDALONE) const char *GetExtension(const char *fileName); // Get the extension for a filename @@ -190,45 +178,44 @@ void TraceLog(int msgType, const char *text, ...); // Outputs a trace log messa // Module Functions Definition - Audio Device initialization and Closing //---------------------------------------------------------------------------------- -// Initialize audio device and mixc +// Initialize audio device void InitAudioDevice(void) { // Open and initialize a device with default settings ALCdevice *device = alcOpenDevice(NULL); if (!device) TraceLog(ERROR, "Audio device could not be opened"); - - ALCcontext *context = alcCreateContext(device, NULL); - - if ((context == NULL) || (alcMakeContextCurrent(context) == ALC_FALSE)) + else { - if (context != NULL) alcDestroyContext(context); + ALCcontext *context = alcCreateContext(device, NULL); - alcCloseDevice(device); + if ((context == NULL) || (alcMakeContextCurrent(context) == ALC_FALSE)) + { + if (context != NULL) alcDestroyContext(context); - TraceLog(ERROR, "Could not setup mix channel"); + alcCloseDevice(device); + + TraceLog(ERROR, "Could not initialize audio context"); + } + else + { + TraceLog(INFO, "Audio device and context initialized successfully: %s", alcGetString(device, ALC_DEVICE_SPECIFIER)); + + // Listener definition (just for 2D) + alListener3f(AL_POSITION, 0, 0, 0); + alListener3f(AL_VELOCITY, 0, 0, 0); + alListener3f(AL_ORIENTATION, 0, 0, -1); + } } - - TraceLog(INFO, "Audio device and context initialized successfully: %s", alcGetString(device, ALC_DEVICE_SPECIFIER)); - - // Listener definition (just for 2D) - alListener3f(AL_POSITION, 0, 0, 0); - alListener3f(AL_VELOCITY, 0, 0, 0); - alListener3f(AL_ORIENTATION, 0, 0, -1); } // Close the audio device for all contexts void CloseAudioDevice(void) { - for (int index = 0; index < MAX_MUSIC_STREAMS; index++) - { - if (musicStreams[index].mixc) StopMusicStreamEx(index); // Stop music streaming and close current stream - } - ALCdevice *device; ALCcontext *context = alcGetCurrentContext(); - if (context == NULL) TraceLog(WARNING, "Could not get current mix channel for closing"); + if (context == NULL) TraceLog(WARNING, "Could not get current audio context for closing"); device = alcGetContextsDevice(context); @@ -252,300 +239,30 @@ bool IsAudioDeviceReady(void) } } -//---------------------------------------------------------------------------------- -// Module Functions Definition - Custom audio output -//---------------------------------------------------------------------------------- - -// Init mix channel for streaming -// The mixChannel is what audio muxing channel you want to operate on, 0-3 are the ones available. -// Each mix channel can only be used one at a time. -static MixChannel *InitMixChannel(unsigned short sampleRate, unsigned char mixChannel, unsigned char channels, bool floatingPoint) -{ - if (mixChannel >= MAX_MIX_CHANNELS) return NULL; - if (!IsAudioDeviceReady()) InitAudioDevice(); - - if (!mixChannels[mixChannel]) - { - MixChannel *mixc = (MixChannel *)malloc(sizeof(MixChannel)); - mixc->sampleRate = sampleRate; - mixc->channels = channels; - mixc->mixChannel = mixChannel; - mixc->floatingPoint = floatingPoint; - mixChannels[mixChannel] = mixc; - - // Setup OpenAL format - if (channels == 1) - { - if (floatingPoint) mixc->alFormat = AL_FORMAT_MONO_FLOAT32; - else mixc->alFormat = AL_FORMAT_MONO16; - } - else if (channels == 2) - { - if (floatingPoint) mixc->alFormat = AL_FORMAT_STEREO_FLOAT32; - else mixc->alFormat = AL_FORMAT_STEREO16; - } - - // Create an audio source - alGenSources(1, &mixc->alSource); - alSourcef(mixc->alSource, AL_PITCH, 1); - alSourcef(mixc->alSource, AL_GAIN, 1); - alSource3f(mixc->alSource, AL_POSITION, 0, 0, 0); - alSource3f(mixc->alSource, AL_VELOCITY, 0, 0, 0); - - // Create Buffer - alGenBuffers(MAX_STREAM_BUFFERS, mixc->alBuffer); - - // Fill buffers - for (int i = 0; i < MAX_STREAM_BUFFERS; i++) - { - // Initialize buffer with zeros by default - if (mixc->floatingPoint) - { - float pcm[MUSIC_BUFFER_SIZE_FLOAT] = { 0.0f }; - alBufferData(mixc->alBuffer[i], mixc->alFormat, pcm, MUSIC_BUFFER_SIZE_FLOAT*sizeof(float), mixc->sampleRate); - } - else - { - short pcm[MUSIC_BUFFER_SIZE_SHORT] = { 0 }; - alBufferData(mixc->alBuffer[i], mixc->alFormat, pcm, MUSIC_BUFFER_SIZE_SHORT*sizeof(short), mixc->sampleRate); - } - } - - alSourceQueueBuffers(mixc->alSource, MAX_STREAM_BUFFERS, mixc->alBuffer); - mixc->playing = true; - alSourcePlay(mixc->alSource); - - return mixc; - } - - return NULL; -} - -// Frees buffer in mix channel -static void CloseMixChannel(MixChannel *mixc) -{ - if (mixc) - { - alSourceStop(mixc->alSource); - mixc->playing = false; - - // Flush out all queued buffers - ALuint buffer = 0; - int queued = 0; - alGetSourcei(mixc->alSource, AL_BUFFERS_QUEUED, &queued); - - while (queued > 0) - { - alSourceUnqueueBuffers(mixc->alSource, 1, &buffer); - queued--; - } - - // Delete source and buffers - alDeleteSources(1, &mixc->alSource); - alDeleteBuffers(MAX_STREAM_BUFFERS, mixc->alBuffer); - mixChannels[mixc->mixChannel] = NULL; - free(mixc); - mixc = NULL; - } -} - -// Pushes more audio data into mix channel, only one buffer per call -// Call "BufferMixChannel(mixc, NULL, 0)" if you want to pause the audio. -// Returns number of samples that where processed. -static int BufferMixChannel(MixChannel *mixc, void *data, int numberElements) -{ - if (!mixc || (mixChannels[mixc->mixChannel] != mixc)) return 0; // When there is two channels there must be an even number of samples - - if (!data || !numberElements) - { - // Pauses audio until data is given - if (mixc->playing) - { - alSourcePause(mixc->alSource); - mixc->playing = false; - } - - return 0; - } - else if (!mixc->playing) - { - // Restart audio otherwise - alSourcePlay(mixc->alSource); - mixc->playing = true; - } - - ALuint buffer = 0; - - alSourceUnqueueBuffers(mixc->alSource, 1, &buffer); - if (!buffer) return 0; - - if (mixc->floatingPoint) - { - // Process float buffers - float *ptr = (float *)data; - alBufferData(buffer, mixc->alFormat, ptr, numberElements*sizeof(float), mixc->sampleRate); - } - else - { - // Process short buffers - short *ptr = (short *)data; - alBufferData(buffer, mixc->alFormat, ptr, numberElements*sizeof(short), mixc->sampleRate); - } - - alSourceQueueBuffers(mixc->alSource, 1, &buffer); - - return numberElements; -} - -/* -// Convert data from short to float -// example usage: -// short sh[3] = {1,2,3};float fl[3]; -// ResampleShortToFloat(sh,fl,3); -static void ResampleShortToFloat(short *shorts, float *floats, unsigned short len) -{ - for (int i = 0; i < len; i++) - { - if (shorts[i] < 0) floats[i] = (float)shorts[i]/32766.0f; - else floats[i] = (float)shorts[i]/32767.0f; - } -} - -// Convert data from float to short -// example usage: -// char ch[3] = {1,2,3};float fl[3]; -// ResampleByteToFloat(ch,fl,3); -static void ResampleByteToFloat(char *chars, float *floats, unsigned short len) -{ - for (int i = 0; i < len; i++) - { - if (chars[i] < 0) floats[i] = (float)chars[i]/127.0f; - else floats[i] = (float)chars[i]/128.0f; - } -} -*/ - -// Initialize raw audio mix channel for audio buffering -// NOTE: Returns mix channel index or -1 if it fails (errors are registered on lastAudioError) -int InitRawMixChannel(int sampleRate, int channels, bool floatingPoint) -{ - int mixIndex; - - for (mixIndex = 0; mixIndex < MAX_MIX_CHANNELS; mixIndex++) // find empty mix channel slot - { - if (mixChannels[mixIndex] == NULL) break; - else if (mixIndex == (MAX_MIX_CHANNELS - 1)) - { - lastAudioError = ERROR_OUT_OF_MIX_CHANNELS; - return -1; - } - } - - if (InitMixChannel(sampleRate, mixIndex, channels, floatingPoint)) return mixIndex; - else - { - lastAudioError = ERROR_RAW_CONTEXT_CREATION; - return -1; - } -} - -// Buffers data directly to raw mix channel -// if 0 is returned, buffers are still full and you need to keep trying with the same data -// otherwise it will return number of samples buffered. -// NOTE: Data could be either be an array of floats or shorts, depending on the created context -int BufferRawAudioContext(int ctx, void *data, unsigned short numberElements) -{ - int numBuffered = 0; - - if (ctx >= 0) - { - MixChannel *mixc = mixChannels[ctx]; - numBuffered = BufferMixChannel(mixc, data, numberElements); - } - - return numBuffered; -} - -// Closes and frees raw mix channel -void CloseRawAudioContext(int ctx) -{ - if (mixChannels[ctx]) CloseMixChannel(mixChannels[ctx]); -} - //---------------------------------------------------------------------------------- // Module Functions Definition - Sounds loading and playing (.WAV) //---------------------------------------------------------------------------------- // Load sound to memory +// NOTE: The entire file is loaded to memory to be played (no-streaming) Sound LoadSound(char *fileName) { - Sound sound = { 0 }; Wave wave = { 0 }; - // NOTE: The entire file is loaded to memory to play it all at once (no-streaming) + if (strcmp(GetExtension(fileName), "wav") == 0) wave = LoadWAV(fileName); + else if (strcmp(GetExtension(fileName), "ogg") == 0) wave = LoadOGG(fileName); + else TraceLog(WARNING, "[%s] Sound extension not recognized, it can't be loaded", fileName); - // Audio file loading - // NOTE: Buffer space is allocated inside function, Wave must be freed - - if (strcmp(GetExtension(fileName),"wav") == 0) wave = LoadWAV(fileName); - else if (strcmp(GetExtension(fileName),"ogg") == 0) wave = LoadOGG(fileName); - else - { - TraceLog(WARNING, "[%s] Sound extension not recognized, it can't be loaded", fileName); - - // TODO: Find a better way to register errors (similar to glGetError()) - lastAudioError = ERROR_EXTENSION_NOT_RECOGNIZED; - } - - if (wave.data != NULL) - { - ALenum format = 0; - // The OpenAL format is worked out by looking at the number of channels and the bits per sample - if (wave.channels == 1) - { - if (wave.bitsPerSample == 8 ) format = AL_FORMAT_MONO8; - else if (wave.bitsPerSample == 16) format = AL_FORMAT_MONO16; - } - else if (wave.channels == 2) - { - if (wave.bitsPerSample == 8 ) format = AL_FORMAT_STEREO8; - else if (wave.bitsPerSample == 16) format = AL_FORMAT_STEREO16; - } - - // Create an audio source - ALuint source; - alGenSources(1, &source); // Generate pointer to audio source - - alSourcef(source, AL_PITCH, 1); - alSourcef(source, AL_GAIN, 1); - alSource3f(source, AL_POSITION, 0, 0, 0); - alSource3f(source, AL_VELOCITY, 0, 0, 0); - alSourcei(source, AL_LOOPING, AL_FALSE); - - // Convert loaded data to OpenAL buffer - //---------------------------------------- - ALuint buffer; - alGenBuffers(1, &buffer); // Generate pointer to buffer - - // Upload sound data to buffer - alBufferData(buffer, format, wave.data, wave.dataSize, wave.sampleRate); - - // Attach sound buffer to source - alSourcei(source, AL_BUFFER, buffer); - - TraceLog(INFO, "[%s] Sound file loaded successfully (SampleRate: %i, BitRate: %i, Channels: %i)", fileName, wave.sampleRate, wave.bitsPerSample, wave.channels); - - // Unallocate WAV data - UnloadWave(wave); - - sound.source = source; - sound.buffer = buffer; - } + Sound sound = LoadSoundFromWave(wave); + + // Sound is loaded, we can unload wave + UnloadWave(wave); return sound; } // Load sound from wave data +// NOTE: Wave data must be unallocated manually Sound LoadSoundFromWave(Wave wave) { Sound sound = { 0 }; @@ -586,10 +303,7 @@ Sound LoadSoundFromWave(Wave wave) // Attach sound buffer to source alSourcei(source, AL_BUFFER, buffer); - // Unallocate WAV data - UnloadWave(wave); - - TraceLog(INFO, "[Wave] Sound file loaded successfully (SampleRate: %i, BitRate: %i, Channels: %i)", wave.sampleRate, wave.bitsPerSample, wave.channels); + TraceLog(INFO, "[SND ID %i][BUFR ID %i] Sound data loaded successfully (SampleRate: %i, BitRate: %i, Channels: %i)", source, buffer, wave.sampleRate, wave.bitsPerSample, wave.channels); sound.source = source; sound.buffer = buffer; @@ -619,11 +333,7 @@ Sound LoadSoundFromRES(const char *rresName, int resId) FILE *rresFile = fopen(rresName, "rb"); - if (rresFile == NULL) - { - TraceLog(WARNING, "[%s] rRES raylib resource file could not be opened", rresName); - lastAudioError = ERROR_UNABLE_TO_OPEN_RRES_FILE; - } + if (rresFile == NULL) TraceLog(WARNING, "[%s] rRES raylib resource file could not be opened", rresName); else { // Read rres file (basic file check - id) @@ -637,7 +347,6 @@ Sound LoadSoundFromRES(const char *rresName, int resId) if ((id[0] != 'r') && (id[1] != 'R') && (id[2] != 'E') &&(id[3] != 'S')) { TraceLog(WARNING, "[%s] This is not a valid raylib resource file", rresName); - lastAudioError = ERROR_INVALID_RRES_FILE; } else { @@ -681,55 +390,12 @@ Sound LoadSoundFromRES(const char *rresName, int resId) free(data); - // Convert wave to Sound (OpenAL) - ALenum format = 0; - - // The OpenAL format is worked out by looking at the number of channels and the bits per sample - if (wave.channels == 1) - { - if (wave.bitsPerSample == 8 ) format = AL_FORMAT_MONO8; - else if (wave.bitsPerSample == 16) format = AL_FORMAT_MONO16; - } - else if (wave.channels == 2) - { - if (wave.bitsPerSample == 8 ) format = AL_FORMAT_STEREO8; - else if (wave.bitsPerSample == 16) format = AL_FORMAT_STEREO16; - } - - // Create an audio source - ALuint source; - alGenSources(1, &source); // Generate pointer to audio source - - alSourcef(source, AL_PITCH, 1); - alSourcef(source, AL_GAIN, 1); - alSource3f(source, AL_POSITION, 0, 0, 0); - alSource3f(source, AL_VELOCITY, 0, 0, 0); - alSourcei(source, AL_LOOPING, AL_FALSE); - - // Convert loaded data to OpenAL buffer - //---------------------------------------- - ALuint buffer; - alGenBuffers(1, &buffer); // Generate pointer to buffer - - // Upload sound data to buffer - alBufferData(buffer, format, (void*)wave.data, wave.dataSize, wave.sampleRate); - - // Attach sound buffer to source - alSourcei(source, AL_BUFFER, buffer); - - TraceLog(INFO, "[%s] Sound loaded successfully from resource (SampleRate: %i, BitRate: %i, Channels: %i)", rresName, wave.sampleRate, wave.bitsPerSample, wave.channels); - - // Unallocate WAV data + sound = LoadSoundFromWave(wave); + + // Sound is loaded, we can unload wave data UnloadWave(wave); - - sound.source = source; - sound.buffer = buffer; - } - else - { - TraceLog(WARNING, "[%s] Required resource do not seem to be a valid SOUND resource", rresName); - lastAudioError = ERROR_INVALID_RRES_RESOURCE; } + else TraceLog(WARNING, "[%s] Required resource do not seem to be a valid SOUND resource", rresName); } else { @@ -764,7 +430,7 @@ void UnloadSound(Sound sound) alDeleteSources(1, &sound.source); alDeleteBuffers(1, &sound.buffer); - TraceLog(INFO, "Unloaded sound data"); + TraceLog(INFO, "[SND ID %i][BUFR ID %i] Unloaded sound data from RAM", sound.source, sound.buffer); } // Play a sound @@ -794,6 +460,16 @@ void PauseSound(Sound sound) alSourcePause(sound.source); } +// Resume a paused sound +void ResumeSound(Sound sound) +{ + ALenum state; + + alGetSourcei(sound.source, AL_SOURCE_STATE, &state); + + if (state == AL_PAUSED) alSourcePlay(sound.source); +} + // Stop reproducing a sound void StopSound(Sound sound) { @@ -828,349 +504,219 @@ void SetSoundPitch(Sound sound, float pitch) // Module Functions Definition - Music loading and stream playing (.OGG) //---------------------------------------------------------------------------------- -MusicBuffer LoadMusicBufferStream(char *fileName, int index) +// Load music stream from file +Music LoadMusicStream(char *fileName) { - MusicBuffer buffer = { 0 }; + Music music = (MusicData *)malloc(sizeof(MusicData)); - if(index > MAX_MUSIC_STREAMS) + if (strcmp(GetExtension(fileName), "ogg") == 0) { - TraceLog("[%s] index is greater than MAX_MUSIC_STREAMS", ERROR); - return; // error + // Open ogg audio stream + music->ctxOgg = stb_vorbis_open_filename(fileName, NULL, NULL); + + if (music->ctxOgg == NULL) + { + TraceLog(WARNING, "[%s] OGG audio file could not be opened", fileName); + } + else + { + stb_vorbis_info info = stb_vorbis_get_info(music->ctxOgg); // Get Ogg file info + + TraceLog(DEBUG, "[%s] Ogg sample rate: %i", fileName, info.sample_rate); + TraceLog(DEBUG, "[%s] Ogg channels: %i", fileName, info.channels); + TraceLog(DEBUG, "[%s] Temp memory required: %i", fileName, info.temp_memory_required); + + // TODO: Support 32-bit sampleSize OGGs + music->stream = InitAudioStream(info.sample_rate, 16, info.channels); + + music->totalSamples = (unsigned int)stb_vorbis_stream_length_in_samples(music->ctxOgg)*info.channels; + music->samplesLeft = music->totalSamples; + //float totalLengthSeconds = stb_vorbis_stream_length_in_seconds(music->ctxOgg); + + music->ctxType = MUSIC_AUDIO_OGG; + music->loop = true; // We loop by default + } } + else if (strcmp(GetExtension(fileName), "xm") == 0) + { + int result = jar_xm_create_context_from_file(&music->ctxXm, 48000, fileName); + + if (!result) // XM context created successfully + { + jar_xm_set_max_loop_count(music->ctxXm, 0); // Set infinite number of loops - buffer.fileName = fileName; - buffer.index = index; + music->totalSamples = (unsigned int)jar_xm_get_remaining_samples(music->ctxXm); + music->samplesLeft = music->totalSamples; + TraceLog(INFO, "[%s] XM number of samples: %i", fileName, music->totalSamples); + TraceLog(INFO, "[%s] XM track length: %11.6f sec", fileName, (float)music->totalSamples/48000.0f); + + // NOTE: Only stereo is supported for XM + music->stream = InitAudioStream(48000, 32, 2); + + music->ctxType = MUSIC_MODULE_XM; + music->loop = true; + } + else TraceLog(WARNING, "[%s] XM file could not be opened", fileName); + } + else if (strcmp(GetExtension(fileName), "mod") == 0) + { + jar_mod_init(&music->ctxMod); - if (musicStreams[buffer.index].stream || musicStreams[buffer.index].xmctx) return; // error + if (jar_mod_load_file(&music->ctxMod, fileName)) + { + music->totalSamples = (unsigned int)jar_mod_max_samples(&music->ctxMod); + music->samplesLeft = music->totalSamples; - return buffer; + TraceLog(INFO, "[%s] MOD number of samples: %i", fileName, music->samplesLeft); + TraceLog(INFO, "[%s] MOD track length: %11.6f sec", fileName, (float)music->totalSamples/48000.0f); + + music->stream = InitAudioStream(48000, 16, 2); + + music->ctxType = MUSIC_MODULE_MOD; + music->loop = true; + } + else TraceLog(WARNING, "[%s] MOD file could not be opened", fileName); + } + else TraceLog(WARNING, "[%s] Music extension not recognized, it can't be loaded", fileName); + + return music; +} + +// Unload music stream +void UnloadMusicStream(Music music) +{ + CloseAudioStream(music->stream); + + if (music->ctxType == MUSIC_AUDIO_OGG) stb_vorbis_close(music->ctxOgg); + else if (music->ctxType == MUSIC_MODULE_XM) jar_xm_free_context(music->ctxXm); + else if (music->ctxType == MUSIC_MODULE_MOD) jar_mod_unload(&music->ctxMod); + + free(music); } // Start music playing (open stream) -// returns 0 on success or error code -int PlayMusicStream(MusicBuffer musicBuffer) +void PlayMusicStream(Music music) { - if(musicBuffer.fileName == 0) - { - return ERROR_UNINTIALIZED_MUSIC_BUFFER; - } - int mixIndex; - for (mixIndex = 0; mixIndex < MAX_MIX_CHANNELS; mixIndex++) // find empty mix channel slot - { - if (mixChannels[mixIndex] == NULL) break; - else if (mixIndex == (MAX_MIX_CHANNELS - 1)) return ERROR_OUT_OF_MIX_CHANNELS; // error - } - - if (strcmp(GetExtension(musicBuffer.fileName),"ogg") == 0) - { - // Open audio stream - musicStreams[musicBuffer.index].stream = stb_vorbis_open_filename(musicBuffer.fileName, NULL, NULL); - - if (musicStreams[musicBuffer.index].stream == NULL) - { - TraceLog(WARNING, "[%s] OGG audio file could not be opened", musicBuffer.fileName); - return ERROR_LOADING_OGG; // error - } - else - { - // Get file info - stb_vorbis_info info = stb_vorbis_get_info(musicStreams[musicBuffer.index].stream); - - TraceLog(INFO, "[%s] Ogg sample rate: %i", musicBuffer.fileName, info.sample_rate); - TraceLog(INFO, "[%s] Ogg channels: %i", musicBuffer.fileName, info.channels); - TraceLog(DEBUG, "[%s] Temp memory required: %i", musicBuffer.fileName, info.temp_memory_required); - - musicStreams[musicBuffer.index].loop = true; // We loop by default - musicStreams[musicBuffer.index].enabled = true; - - - musicStreams[musicBuffer.index].totalSamplesLeft = (unsigned int)stb_vorbis_stream_length_in_samples(musicStreams[musicBuffer.index].stream) * info.channels; - musicStreams[musicBuffer.index].totalLengthSeconds = stb_vorbis_stream_length_in_seconds(musicStreams[musicBuffer.index].stream); - - if (info.channels == 2) - { - musicStreams[musicBuffer.index].mixc = InitMixChannel(info.sample_rate, mixIndex, 2, false); - musicStreams[musicBuffer.index].mixc->playing = true; - } - else - { - musicStreams[musicBuffer.index].mixc = InitMixChannel(info.sample_rate, mixIndex, 1, false); - musicStreams[musicBuffer.index].mixc->playing = true; - } - - if (!musicStreams[musicBuffer.index].mixc) return ERROR_LOADING_OGG; // error - } - } - else if (strcmp(GetExtension(musicBuffer.fileName),"xm") == 0) - { - // only stereo is supported for xm - if (!jar_xm_create_context_from_file(&musicStreams[musicBuffer.index].xmctx, 48000, musicBuffer.fileName)) - { - musicStreams[musicBuffer.index].chipTune = true; - musicStreams[musicBuffer.index].loop = true; - jar_xm_set_max_loop_count(musicStreams[musicBuffer.index].xmctx, 0); // infinite number of loops - musicStreams[musicBuffer.index].totalSamplesLeft = (unsigned int)jar_xm_get_remaining_samples(musicStreams[musicBuffer.index].xmctx); - musicStreams[musicBuffer.index].totalLengthSeconds = ((float)musicStreams[musicBuffer.index].totalSamplesLeft)/48000.0f; - musicStreams[musicBuffer.index].enabled = true; - - TraceLog(INFO, "[%s] XM number of samples: %i", musicBuffer.fileName, musicStreams[musicBuffer.index].totalSamplesLeft); - TraceLog(INFO, "[%s] XM track length: %11.6f sec", musicBuffer.fileName, musicStreams[musicBuffer.index].totalLengthSeconds); - - musicStreams[musicBuffer.index].mixc = InitMixChannel(48000, mixIndex, 2, true); - - if (!musicStreams[musicBuffer.index].mixc) return ERROR_XM_CONTEXT_CREATION; // error - - musicStreams[musicBuffer.index].mixc->playing = true; - } - else - { - TraceLog(WARNING, "[%s] XM file could not be opened", musicBuffer.fileName); - return ERROR_LOADING_XM; // error - } - } - else if (strcmp(GetExtension(musicBuffer.fileName),"mod") == 0) - { - jar_mod_init(&musicStreams[musicBuffer.index].modctx); - - if (jar_mod_load_file(&musicStreams[musicBuffer.index].modctx, musicBuffer.fileName)) - { - musicStreams[musicBuffer.index].chipTune = true; - musicStreams[musicBuffer.index].loop = true; - musicStreams[musicBuffer.index].totalSamplesLeft = (unsigned int)jar_mod_max_samples(&musicStreams[musicBuffer.index].modctx); - musicStreams[musicBuffer.index].totalLengthSeconds = ((float)musicStreams[musicBuffer.index].totalSamplesLeft)/48000.0f; - musicStreams[musicBuffer.index].enabled = true; - - TraceLog(INFO, "[%s] MOD number of samples: %i", musicBuffer.fileName, musicStreams[musicBuffer.index].totalSamplesLeft); - TraceLog(INFO, "[%s] MOD track length: %11.6f sec", musicBuffer.fileName, musicStreams[musicBuffer.index].totalLengthSeconds); - - musicStreams[musicBuffer.index].mixc = InitMixChannel(48000, mixIndex, 2, false); - - if (!musicStreams[musicBuffer.index].mixc) return ERROR_MOD_CONTEXT_CREATION; // error - - musicStreams[musicBuffer.index].mixc->playing = true; - } - else - { - TraceLog(WARNING, "[%s] MOD file could not be opened", musicBuffer.fileName); - return ERROR_LOADING_MOD; // error - } - } - else - { - TraceLog(WARNING, "[%s] Music extension not recognized, it can't be loaded", musicBuffer.fileName); - return ERROR_EXTENSION_NOT_RECOGNIZED; // error - } - - return 0; // normal return + alSourcePlay(music->stream.source); } -// Stop music playing for individual music index of musicStreams array (close stream) -void StopMusicStream(MusicBuffer musicBuffer) +// Pause music playing +void PauseMusicStream(Music music) { - if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) - { - CloseMixChannel(musicStreams[musicBuffer.index].mixc); - - if (musicStreams[musicBuffer.index].xmctx) - jar_xm_free_context(musicStreams[musicBuffer.index].xmctx); - else if (musicStreams[musicBuffer.index].modctx.mod_loaded) - jar_mod_unload(&musicStreams[musicBuffer.index].modctx); - else - stb_vorbis_close(musicStreams[musicBuffer.index].stream); - - musicStreams[musicBuffer.index].enabled = false; - - if (musicStreams[musicBuffer.index].stream || musicStreams[musicBuffer.index].xmctx) - { - musicStreams[musicBuffer.index].stream = NULL; - musicStreams[musicBuffer.index].xmctx = NULL; - } - } + alSourcePause(music->stream.source); } -void StopMusicStreamEx(int index) +// Resume music playing +void ResumeMusicStream(Music music) { - if (index < MAX_MUSIC_STREAMS && musicStreams[index].mixc) - { - CloseMixChannel(musicStreams[index].mixc); + ALenum state; + alGetSourcei(music->stream.source, AL_SOURCE_STATE, &state); - if (musicStreams[index].xmctx) - jar_xm_free_context(musicStreams[index].xmctx); - else if (musicStreams[index].modctx.mod_loaded) - jar_mod_unload(&musicStreams[index].modctx); - else - stb_vorbis_close(musicStreams[index].stream); + if (state == AL_PAUSED) alSourcePlay(music->stream.source); +} - musicStreams[index].enabled = false; - - if (musicStreams[index].stream || musicStreams[index].xmctx) - { - musicStreams[index].stream = NULL; - musicStreams[index].xmctx = NULL; - } - } +// Stop music playing (close stream) +void StopMusicStream(Music music) +{ + alSourceStop(music->stream.source); } // Update (re-fill) music buffers if data already processed -void UpdateMusicStream(MusicBuffer musicBuffer) +void UpdateMusicStream(Music music) { ALenum state; bool active = true; ALint processed = 0; // Determine if music stream is ready to be written - alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_BUFFERS_PROCESSED, &processed); + alGetSourcei(music->stream.source, AL_BUFFERS_PROCESSED, &processed); - if (musicStreams[musicBuffer.index].mixc->playing && (musicBuffer.index < MAX_MUSIC_STREAMS) && musicStreams[musicBuffer.index].enabled && musicStreams[musicBuffer.index].mixc && (processed > 0)) + if (processed > 0) { - active = BufferMusicStream(musicBuffer.index, processed); + active = BufferMusicStream(music, processed); - if (!active && musicStreams[musicBuffer.index].loop) + if (!active && music->loop) { - if (musicStreams[musicBuffer.index].chipTune) - { - if(musicStreams[musicBuffer.index].modctx.mod_loaded) jar_mod_seek_start(&musicStreams[musicBuffer.index].modctx); - - musicStreams[musicBuffer.index].totalSamplesLeft = musicStreams[musicBuffer.index].totalLengthSeconds*48000.0f; - } - else - { - stb_vorbis_seek_start(musicStreams[musicBuffer.index].stream); - musicStreams[musicBuffer.index].totalSamplesLeft = stb_vorbis_stream_length_in_samples(musicStreams[musicBuffer.index].stream)*musicStreams[musicBuffer.index].mixc->channels; - } + // Restart music context (if required) + if (music->ctxType == MUSIC_MODULE_MOD) jar_mod_seek_start(&music->ctxMod); + else if (music->ctxType == MUSIC_AUDIO_OGG) stb_vorbis_seek_start(music->ctxOgg); + + music->samplesLeft = music->totalSamples; // Determine if music stream is ready to be written - alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_BUFFERS_PROCESSED, &processed); + alGetSourcei(music->stream.source, AL_BUFFERS_PROCESSED, &processed); - active = BufferMusicStream(musicBuffer.index, processed); + active = BufferMusicStream(music, processed); } if (alGetError() != AL_NO_ERROR) TraceLog(WARNING, "Error buffering data..."); - alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_SOURCE_STATE, &state); + alGetSourcei(music->stream.source, AL_SOURCE_STATE, &state); - if (state != AL_PLAYING && active) alSourcePlay(musicStreams[musicBuffer.index].mixc->alSource); + if (state != AL_PLAYING && active) alSourcePlay(music->stream.source); - if (!active) StopMusicStream(musicBuffer); - - } -} - -//get number of music channels active at this time, this does not mean they are playing -int GetMusicStreamCount(void) -{ - int musicCount = 0; - - // Find empty music slot - for (int musicIndex = 0; musicIndex < MAX_MUSIC_STREAMS; musicIndex++) - { - if(musicStreams[musicIndex].stream != NULL || musicStreams[musicIndex].chipTune) musicCount++; - } - - return musicCount; -} - -// Pause music playing -void PauseMusicStream(MusicBuffer musicBuffer) -{ - // Pause music stream if music available! - if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc && musicStreams[musicBuffer.index].enabled) - { - TraceLog(INFO, "Pausing music stream"); - alSourcePause(musicStreams[musicBuffer.index].mixc->alSource); - musicStreams[musicBuffer.index].mixc->playing = false; - } -} - -// Resume music playing -void ResumeMusicStream(MusicBuffer musicBuffer) -{ - // Resume music playing... if music available! - ALenum state; - - if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) - { - alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_SOURCE_STATE, &state); - - if (state == AL_PAUSED) - { - TraceLog(INFO, "Resuming music stream"); - alSourcePlay(musicStreams[musicBuffer.index].mixc->alSource); - musicStreams[musicBuffer.index].mixc->playing = true; - } + if (!active) StopMusicStream(music); } } // Check if any music is playing -bool IsMusicPlaying(MusicBuffer musicBuffer) +bool IsMusicPlaying(Music music) { bool playing = false; ALint state; - if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) - { - alGetSourcei(musicStreams[musicBuffer.index].mixc->alSource, AL_SOURCE_STATE, &state); + alGetSourcei(music->stream.source, AL_SOURCE_STATE, &state); - if (state == AL_PLAYING) playing = true; - } + if (state == AL_PLAYING) playing = true; return playing; } // Set volume for music -void SetMusicVolume(MusicBuffer musicBuffer, float volume) +void SetMusicVolume(Music music, float volume) { - if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) - { - alSourcef(musicStreams[musicBuffer.index].mixc->alSource, AL_GAIN, volume); - } + alSourcef(music->stream.source, AL_GAIN, volume); } // Set pitch for music -void SetMusicPitch(MusicBuffer musicBuffer, float pitch) +void SetMusicPitch(Music music, float pitch) { - if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) - { - alSourcef(musicStreams[musicBuffer.index].mixc->alSource, AL_PITCH, pitch); - } + alSourcef(music->stream.source, AL_PITCH, pitch); } // Get music time length (in seconds) -float GetMusicTimeLength(MusicBuffer musicBuffer) +float GetMusicTimeLength(Music music) { - float totalSeconds; - - if (musicStreams[musicBuffer.index].chipTune) totalSeconds = (float)musicStreams[musicBuffer.index].totalLengthSeconds; - else totalSeconds = stb_vorbis_stream_length_in_seconds(musicStreams[musicBuffer.index].stream); - + float totalSeconds = (float)music->totalSamples/music->stream.sampleRate; + return totalSeconds; } // Get current music time played (in seconds) -float GetMusicTimePlayed(MusicBuffer musicBuffer) +float GetMusicTimePlayed(Music music) { float secondsPlayed = 0.0f; - if (musicBuffer.index < MAX_MUSIC_STREAMS && musicStreams[musicBuffer.index].mixc) + if (music->ctxType == MUSIC_MODULE_XM) { - if (musicStreams[musicBuffer.index].chipTune && musicStreams[musicBuffer.index].xmctx) - { - uint64_t samples; - jar_xm_get_position(musicStreams[musicBuffer.index].xmctx, NULL, NULL, NULL, &samples); - secondsPlayed = (float)samples/(48000.0f*musicStreams[musicBuffer.index].mixc->channels); // Not sure if this is the correct value - } - else if(musicStreams[musicBuffer.index].chipTune && musicStreams[musicBuffer.index].modctx.mod_loaded) - { - long numsamp = jar_mod_current_samples(&musicStreams[musicBuffer.index].modctx); - secondsPlayed = (float)numsamp/(48000.0f); - } - else - { - int totalSamples = stb_vorbis_stream_length_in_samples(musicStreams[musicBuffer.index].stream)*musicStreams[musicBuffer.index].mixc->channels; - int samplesPlayed = totalSamples - musicStreams[musicBuffer.index].totalSamplesLeft; - secondsPlayed = (float)samplesPlayed/(musicStreams[musicBuffer.index].mixc->sampleRate*musicStreams[musicBuffer.index].mixc->channels); - } + uint64_t samplesPlayed; + jar_xm_get_position(music->ctxXm, NULL, NULL, NULL, &samplesPlayed); + + // TODO: Not sure if this is the correct value + secondsPlayed = (float)samplesPlayed/(music->stream.sampleRate*music->stream.channels); + } + else if (music->ctxType == MUSIC_MODULE_MOD) + { + long samplesPlayed = jar_mod_current_samples(&music->ctxMod); + + secondsPlayed = (float)samplesPlayed/music->stream.sampleRate; + } + else if (music->ctxType == MUSIC_AUDIO_OGG) + { + unsigned int samplesPlayed = music->totalSamples - music->samplesLeft; + + secondsPlayed = (float)samplesPlayed/(music->stream.sampleRate*music->stream.channels); } return secondsPlayed; @@ -1180,57 +726,204 @@ float GetMusicTimePlayed(MusicBuffer musicBuffer) // Module specific Functions Definition //---------------------------------------------------------------------------------- -// Fill music buffers with new data from music stream -static bool BufferMusicStream(int index, int numBuffers) +// Init audio stream (to stream audio pcm data) +static AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels) { - short pcm[MUSIC_BUFFER_SIZE_SHORT]; - float pcmf[MUSIC_BUFFER_SIZE_FLOAT]; + AudioStream stream = { 0 }; + + stream.sampleRate = sampleRate; + stream.sampleSize = sampleSize; + stream.channels = channels; + + // Setup OpenAL format + if (channels == 1) + { + switch (sampleSize) + { + case 8: stream.format = AL_FORMAT_MONO8; break; + case 16: stream.format = AL_FORMAT_MONO16; break; + case 32: stream.format = AL_FORMAT_MONO_FLOAT32; break; + default: TraceLog(WARNING, "Init audio stream: Sample size not supported: %i", sampleSize); break; + } + } + else if (channels == 2) + { + switch (sampleSize) + { + case 8: stream.format = AL_FORMAT_STEREO8; break; + case 16: stream.format = AL_FORMAT_STEREO16; break; + case 32: stream.format = AL_FORMAT_STEREO_FLOAT32; break; + default: TraceLog(WARNING, "Init audio stream: Sample size not supported: %i", sampleSize); break; + } + } + else TraceLog(WARNING, "Init audio stream: Number of channels not supported: %i", channels); + + // Create an audio source + alGenSources(1, &stream.source); + alSourcef(stream.source, AL_PITCH, 1); + alSourcef(stream.source, AL_GAIN, 1); + alSource3f(stream.source, AL_POSITION, 0, 0, 0); + alSource3f(stream.source, AL_VELOCITY, 0, 0, 0); + + // Create Buffers + alGenBuffers(MAX_STREAM_BUFFERS, stream.buffers); + + // Initialize buffer with zeros by default + for (int i = 0; i < MAX_STREAM_BUFFERS; i++) + { + if (stream.sampleSize == 8) + { + unsigned char pcm[AUDIO_BUFFER_SIZE] = { 0 }; + alBufferData(stream.buffers[i], stream.format, pcm, AUDIO_BUFFER_SIZE*sizeof(unsigned char), stream.sampleRate); + } + else if (stream.sampleSize == 16) + { + short pcm[AUDIO_BUFFER_SIZE] = { 0 }; + alBufferData(stream.buffers[i], stream.format, pcm, AUDIO_BUFFER_SIZE*sizeof(short), stream.sampleRate); + } + else if (stream.sampleSize == 32) + { + float pcm[AUDIO_BUFFER_SIZE] = { 0.0f }; + alBufferData(stream.buffers[i], stream.format, pcm, AUDIO_BUFFER_SIZE*sizeof(float), stream.sampleRate); + } + } + + alSourceQueueBuffers(stream.source, MAX_STREAM_BUFFERS, stream.buffers); + + TraceLog(INFO, "[AUD ID %i] Audio stream loaded successfully", stream.source); + + return stream; +} + +// Close audio stream and free memory +static void CloseAudioStream(AudioStream stream) +{ + // Stop playing channel + alSourceStop(stream.source); + + // Flush out all queued buffers + int queued = 0; + alGetSourcei(stream.source, AL_BUFFERS_QUEUED, &queued); + + ALuint buffer = 0; + + while (queued > 0) + { + alSourceUnqueueBuffers(stream.source, 1, &buffer); + queued--; + } + + // Delete source and buffers + alDeleteSources(1, &stream.source); + alDeleteBuffers(MAX_STREAM_BUFFERS, stream.buffers); + + TraceLog(INFO, "[AUD ID %i] Unloaded audio stream data", stream.source); +} + +// Push more audio data into audio stream, only one buffer per call +// NOTE: Returns number of samples that were processed +static int BufferAudioStream(AudioStream stream, void *data, int numberElements) +{ + if (!data || !numberElements) + { + // Pauses audio until data is given + alSourcePause(stream.source); + return 0; + } + + ALuint buffer = 0; + alSourceUnqueueBuffers(stream.source, 1, &buffer); + + if (!buffer) return 0; + + // Reference + //void alBufferData(ALuint bufferName, ALenum format, const ALvoid *data, ALsizei size, ALsizei frequency); + + // ALuint bufferName: buffer id + // ALenum format: Valid formats are + // AL_FORMAT_MONO8, // unsigned char + // AL_FORMAT_MONO16, // short + // AL_FORMAT_STEREO8, + // AL_FORMAT_STEREO16 // stereo data is interleaved: left+right channels sample + // AL_FORMAT_MONO_FLOAT32 (extension) + // AL_FORMAT_STEREO_FLOAT32 (extension) + // ALsizei size: Number of bytes, must be coherent with format + // ALsizei frequency: sample rate + + if (stream.sampleSize == 8) alBufferData(buffer, stream.format, (unsigned char *)data, numberElements*sizeof(unsigned char), stream.sampleRate); + else if (stream.sampleSize == 16) alBufferData(buffer, stream.format, (short *)data, numberElements*sizeof(short), stream.sampleRate); + else if (stream.sampleSize == 32) alBufferData(buffer, stream.format, (float *)data, numberElements*sizeof(float), stream.sampleRate); + + alSourceQueueBuffers(stream.source, 1, &buffer); + + return numberElements; +} + +// Fill music buffers with new data from music stream +static bool BufferMusicStream(Music music, int numBuffersToProcess) +{ + short pcm[AUDIO_BUFFER_SIZE]; + float pcmf[AUDIO_BUFFER_SIZE]; int size = 0; // Total size of data steamed in L+R samples for xm floats, individual L or R for ogg shorts bool active = true; // We can get more data from stream (not finished) - if (musicStreams[index].chipTune) // There is no end of stream for xmfiles, once the end is reached zeros are generated for non looped chiptunes. + if (music->ctxType == MUSIC_MODULE_XM) // There is no end of stream for xmfiles, once the end is reached zeros are generated for non looped chiptunes. { - for (int i = 0; i < numBuffers; i++) + for (int i = 0; i < numBuffersToProcess; i++) { - if (musicStreams[index].modctx.mod_loaded) - { - if (musicStreams[index].totalSamplesLeft >= MUSIC_BUFFER_SIZE_SHORT) size = MUSIC_BUFFER_SIZE_SHORT/2; - else size = musicStreams[index].totalSamplesLeft/2; + if (music->samplesLeft >= AUDIO_BUFFER_SIZE) size = AUDIO_BUFFER_SIZE/2; + else size = music->samplesLeft/2; - jar_mod_fillbuffer(&musicStreams[index].modctx, pcm, size, 0 ); - BufferMixChannel(musicStreams[index].mixc, pcm, size*2); - } - else if (musicStreams[index].xmctx) - { - if (musicStreams[index].totalSamplesLeft >= MUSIC_BUFFER_SIZE_FLOAT) size = MUSIC_BUFFER_SIZE_FLOAT/2; - else size = musicStreams[index].totalSamplesLeft/2; + // Read 2*shorts and moves them to buffer+size memory location + jar_xm_generate_samples(music->ctxXm, pcmf, size); + + BufferAudioStream(music->stream, pcmf, size*2); - jar_xm_generate_samples(musicStreams[index].xmctx, pcmf, size); // reads 2*readlen shorts and moves them to buffer+size memory location - BufferMixChannel(musicStreams[index].mixc, pcmf, size*2); - } + music->samplesLeft -= size; - musicStreams[index].totalSamplesLeft -= size; - - if (musicStreams[index].totalSamplesLeft <= 0) + if (music->samplesLeft <= 0) { active = false; break; } } } - else + else if (music->ctxType == MUSIC_MODULE_MOD) { - if (musicStreams[index].totalSamplesLeft >= MUSIC_BUFFER_SIZE_SHORT) size = MUSIC_BUFFER_SIZE_SHORT; - else size = musicStreams[index].totalSamplesLeft; - - for (int i = 0; i < numBuffers; i++) + for (int i = 0; i < numBuffersToProcess; i++) { - int streamedBytes = stb_vorbis_get_samples_short_interleaved(musicStreams[index].stream, musicStreams[index].mixc->channels, pcm, size); - BufferMixChannel(musicStreams[index].mixc, pcm, streamedBytes * musicStreams[index].mixc->channels); - musicStreams[index].totalSamplesLeft -= streamedBytes * musicStreams[index].mixc->channels; + if (music->samplesLeft >= AUDIO_BUFFER_SIZE) size = AUDIO_BUFFER_SIZE/2; + else size = music->samplesLeft/2; - if (musicStreams[index].totalSamplesLeft <= 0) + jar_mod_fillbuffer(&music->ctxMod, pcm, size, 0); + + BufferAudioStream(music->stream, pcm, size*2); + + music->samplesLeft -= size; + + if (music->samplesLeft <= 0) + { + active = false; + break; + } + } + } + else if (music->ctxType == MUSIC_AUDIO_OGG) + { + if (music->samplesLeft >= AUDIO_BUFFER_SIZE) size = AUDIO_BUFFER_SIZE; + else size = music->samplesLeft; + + for (int i = 0; i < numBuffersToProcess; i++) + { + // NOTE: Returns the number of samples stored per channel + int numSamples = stb_vorbis_get_samples_short_interleaved(music->ctxOgg, music->stream.channels, pcm, size); + + BufferAudioStream(music->stream, pcm, numSamples*music->stream.channels); + + music->samplesLeft -= (numSamples*music->stream.channels); + + if (music->samplesLeft <= 0) { active = false; break; @@ -1241,22 +934,6 @@ static bool BufferMusicStream(int index, int numBuffers) return active; } -// Empty music buffers -static void EmptyMusicStream(int index) -{ - ALuint buffer = 0; - int queued = 0; - - alGetSourcei(musicStreams[index].mixc->alSource, AL_BUFFERS_QUEUED, &queued); - - while (queued > 0) - { - alSourceUnqueueBuffers(musicStreams[index].mixc->alSource, 1, &buffer); - - queued--; - } -} - // Load WAV file into Wave structure static Wave LoadWAV(const char *fileName) { @@ -1382,7 +1059,7 @@ static Wave LoadOGG(char *fileName) TraceLog(DEBUG, "[%s] Ogg sample rate: %i", fileName, info.sample_rate); TraceLog(DEBUG, "[%s] Ogg channels: %i", fileName, info.channels); - int totalSamplesLength = (stb_vorbis_stream_length_in_samples(oggFile) * info.channels); + int totalSamplesLength = (stb_vorbis_stream_length_in_samples(oggFile)*info.channels); wave.dataSize = totalSamplesLength*sizeof(short); // Size must be in bytes @@ -1417,7 +1094,7 @@ static void UnloadWave(Wave wave) { free(wave.data); - TraceLog(INFO, "Unloaded wave data"); + TraceLog(INFO, "Unloaded wave data from RAM"); } // Some required functions for audio standalone module version diff --git a/src/audio.h b/src/audio.h index d39162b5b..c91713397 100644 --- a/src/audio.h +++ b/src/audio.h @@ -75,10 +75,9 @@ typedef struct Wave { short channels; } Wave; -typedef struct MusicBuffer { - char *fileName; - int index; // index in musicStreams -} MusicBuffer; +// Music type (file streaming from memory) +// NOTE: Anything longer than ~10 seconds should be streamed into a mix channel... +typedef struct Music *Music; #ifdef __cplusplus extern "C" { // Prevents name mangling of functions @@ -102,27 +101,24 @@ Sound LoadSoundFromRES(const char *rresName, int resId); // Load sound to void UnloadSound(Sound sound); // Unload sound void PlaySound(Sound sound); // Play a sound void PauseSound(Sound sound); // Pause a sound +void ResumeSound(Sound sound); // Resume a paused sound void StopSound(Sound sound); // Stop playing a sound bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) -MusicBuffer LoadMusicBufferStream(char *fileName, int index); -int PlayMusicStream(MusicBuffer buffer); // Start music playing (open stream) -void UpdateMusicStream(MusicBuffer buffer); // Updates buffers for music streaming -void StopMusicStream(MusicBuffer buffer); // Stop music playing (close stream) -void PauseMusicStream(MusicBuffer buffer); // Pause music playing -void ResumeMusicStream(MusicBuffer buffer); // Resume playing paused music -bool IsMusicPlaying(MusicBuffer buffer); // Check if music is playing -void SetMusicVolume(MusicBuffer buffer float volume); // Set volume for music (1.0 is max level) -void SetMusicPitch(MusicBuffer buffer, float pitch); // Set pitch for a music (1.0 is base level) -float GetMusicTimeLength(MusicBuffer buffer); // Get music time length (in seconds) -float GetMusicTimePlayed(MusicBuffer buffer); // Get current music time played (in seconds) -int GetMusicStreamCount(void); // Get number of streams loaded - -int InitRawMixChannel(int sampleRate, int channels, bool floatingPoint); // Initialize raw audio mix channel for audio buffering -int BufferRawMixChannel(int mixc, void *data, unsigned short numberElements); // Buffers data directly to raw mix channel -void CloseRawMixChannel(int mixc); // Closes and frees raw mix channel +Music LoadMusicStream(char *fileName); // Load music stream from file +void UnloadMusicStream(Music music); // Unload music stream +void PlayMusicStream(Music music); // Start music playing (open stream) +void UpdateMusicStream(Music music); // Updates buffers for music streaming +void StopMusicStream(Music music); // Stop music playing (close stream) +void PauseMusicStream(Music music); // Pause music playing +void ResumeMusicStream(Music music); // Resume playing paused music +bool IsMusicPlaying(Music music); // Check if music is playing +void SetMusicVolume(Music music, float volume); // Set volume for music (1.0 is max level) +void SetMusicPitch(Music music, float pitch); // Set pitch for a music (1.0 is base level) +float GetMusicTimeLength(Music music); // Get music time length (in seconds) +float GetMusicTimePlayed(Music music); // Get current music time played (in seconds) #ifdef __cplusplus } diff --git a/src/external/jar_xm.h b/src/external/jar_xm.h index 02463e088..7f0517df2 100644 --- a/src/external/jar_xm.h +++ b/src/external/jar_xm.h @@ -102,7 +102,7 @@ int jar_xm_create_context_from_file(jar_xm_context_t** ctx, uint32_t rate, const * @deprecated This function is unsafe! * @see jar_xm_create_context_safe() */ -int jar_xm_create_context(jar_xm_context_t**, const char* moddata, uint32_t rate); +int jar_xm_create_context(jar_xm_context_t** ctx, const char* moddata, uint32_t rate); /** Create a XM context. * @@ -114,17 +114,17 @@ int jar_xm_create_context(jar_xm_context_t**, const char* moddata, uint32_t rate * @returns 1 if module data is not sane * @returns 2 if memory allocation failed */ -int jar_xm_create_context_safe(jar_xm_context_t**, const char* moddata, size_t moddata_length, uint32_t rate); +int jar_xm_create_context_safe(jar_xm_context_t** ctx, const char* moddata, size_t moddata_length, uint32_t rate); /** Free a XM context created by jar_xm_create_context(). */ -void jar_xm_free_context(jar_xm_context_t*); +void jar_xm_free_context(jar_xm_context_t* ctx); /** Play the module and put the sound samples in an output buffer. * * @param output buffer of 2*numsamples elements (A left and right value for each sample) * @param numsamples number of samples to generate */ -void jar_xm_generate_samples(jar_xm_context_t*, float* output, size_t numsamples); +void jar_xm_generate_samples(jar_xm_context_t* ctx, float* output, size_t numsamples); /** Play the module, resample from 32 bit to 16 bit, and put the sound samples in an output buffer. * @@ -173,12 +173,12 @@ void jar_xm_generate_samples_8bit(jar_xm_context_t* ctx, char* output, size_t nu * * @param loopcnt maximum number of loops. Use 0 to loop * indefinitely. */ -void jar_xm_set_max_loop_count(jar_xm_context_t*, uint8_t loopcnt); +void jar_xm_set_max_loop_count(jar_xm_context_t* ctx, uint8_t loopcnt); /** Get the loop count of the currently playing module. This value is * 0 when the module is still playing, 1 when the module has looped * once, etc. */ -uint8_t jar_xm_get_loop_count(jar_xm_context_t*); +uint8_t jar_xm_get_loop_count(jar_xm_context_t* ctx); @@ -188,7 +188,7 @@ uint8_t jar_xm_get_loop_count(jar_xm_context_t*); * * @return whether the channel was muted. */ -bool jar_xm_mute_channel(jar_xm_context_t*, uint16_t, bool); +bool jar_xm_mute_channel(jar_xm_context_t* ctx, uint16_t, bool); /** Mute or unmute an instrument. * @@ -197,43 +197,43 @@ bool jar_xm_mute_channel(jar_xm_context_t*, uint16_t, bool); * * @return whether the instrument was muted. */ -bool jar_xm_mute_instrument(jar_xm_context_t*, uint16_t, bool); +bool jar_xm_mute_instrument(jar_xm_context_t* ctx, uint16_t, bool); /** Get the module name as a NUL-terminated string. */ -const char* jar_xm_get_module_name(jar_xm_context_t*); +const char* jar_xm_get_module_name(jar_xm_context_t* ctx); /** Get the tracker name as a NUL-terminated string. */ -const char* jar_xm_get_tracker_name(jar_xm_context_t*); +const char* jar_xm_get_tracker_name(jar_xm_context_t* ctx); /** Get the number of channels. */ -uint16_t jar_xm_get_number_of_channels(jar_xm_context_t*); +uint16_t jar_xm_get_number_of_channels(jar_xm_context_t* ctx); /** Get the module length (in patterns). */ uint16_t jar_xm_get_module_length(jar_xm_context_t*); /** Get the number of patterns. */ -uint16_t jar_xm_get_number_of_patterns(jar_xm_context_t*); +uint16_t jar_xm_get_number_of_patterns(jar_xm_context_t* ctx); /** Get the number of rows of a pattern. * * @note Pattern numbers go from 0 to * jar_xm_get_number_of_patterns(...)-1. */ -uint16_t jar_xm_get_number_of_rows(jar_xm_context_t*, uint16_t); +uint16_t jar_xm_get_number_of_rows(jar_xm_context_t* ctx, uint16_t); /** Get the number of instruments. */ -uint16_t jar_xm_get_number_of_instruments(jar_xm_context_t*); +uint16_t jar_xm_get_number_of_instruments(jar_xm_context_t* ctx); /** Get the number of samples of an instrument. * * @note Instrument numbers go from 1 to * jar_xm_get_number_of_instruments(...). */ -uint16_t jar_xm_get_number_of_samples(jar_xm_context_t*, uint16_t); +uint16_t jar_xm_get_number_of_samples(jar_xm_context_t* ctx, uint16_t); @@ -242,7 +242,7 @@ uint16_t jar_xm_get_number_of_samples(jar_xm_context_t*, uint16_t); * @param bpm will receive the current BPM * @param tempo will receive the current tempo (ticks per line) */ -void jar_xm_get_playing_speed(jar_xm_context_t*, uint16_t* bpm, uint16_t* tempo); +void jar_xm_get_playing_speed(jar_xm_context_t* ctx, uint16_t* bpm, uint16_t* tempo); /** Get the current position in the module being played. * @@ -257,7 +257,7 @@ void jar_xm_get_playing_speed(jar_xm_context_t*, uint16_t* bpm, uint16_t* tempo) * generated samples (divide by sample rate to get seconds of * generated audio) */ -void jar_xm_get_position(jar_xm_context_t*, uint8_t* pattern_index, uint8_t* pattern, uint8_t* row, uint64_t* samples); +void jar_xm_get_position(jar_xm_context_t* ctx, uint8_t* pattern_index, uint8_t* pattern, uint8_t* row, uint64_t* samples); /** Get the latest time (in number of generated samples) when a * particular instrument was triggered in any channel. @@ -265,7 +265,7 @@ void jar_xm_get_position(jar_xm_context_t*, uint8_t* pattern_index, uint8_t* pat * @note Instrument numbers go from 1 to * jar_xm_get_number_of_instruments(...). */ -uint64_t jar_xm_get_latest_trigger_of_instrument(jar_xm_context_t*, uint16_t); +uint64_t jar_xm_get_latest_trigger_of_instrument(jar_xm_context_t* ctx, uint16_t); /** Get the latest time (in number of generated samples) when a * particular sample was triggered in any channel. @@ -276,21 +276,21 @@ uint64_t jar_xm_get_latest_trigger_of_instrument(jar_xm_context_t*, uint16_t); * @note Sample numbers go from 0 to * jar_xm_get_nubmer_of_samples(...,instr)-1. */ -uint64_t jar_xm_get_latest_trigger_of_sample(jar_xm_context_t*, uint16_t instr, uint16_t sample); +uint64_t jar_xm_get_latest_trigger_of_sample(jar_xm_context_t* ctx, uint16_t instr, uint16_t sample); /** Get the latest time (in number of generated samples) when any * instrument was triggered in a given channel. * * @note Channel numbers go from 1 to jar_xm_get_number_of_channels(...). */ -uint64_t jar_xm_get_latest_trigger_of_channel(jar_xm_context_t*, uint16_t); +uint64_t jar_xm_get_latest_trigger_of_channel(jar_xm_context_t* ctx, uint16_t); /** Get the number of remaining samples. Divide by 2 to get the number of individual LR data samples. * * @note This is the remaining number of samples before the loop starts module again, or halts if on last pass. * @note This function is very slow and should only be run once, if at all. */ -uint64_t jar_xm_get_remaining_samples(jar_xm_context_t*); +uint64_t jar_xm_get_remaining_samples(jar_xm_context_t* ctx); #ifdef __cplusplus } @@ -308,7 +308,7 @@ uint64_t jar_xm_get_remaining_samples(jar_xm_context_t*); #include #include -#if JAR_XM_DEBUG +#ifdef JAR_XM_DEBUG #include #define DEBUG(fmt, ...) do { \ fprintf(stderr, "%s(): " fmt "\n", __func__, __VA_ARGS__); \ @@ -638,7 +638,7 @@ int jar_xm_create_context_safe(jar_xm_context_t** ctxp, const char* moddata, siz /* Initialize most of the fields to 0, 0.f, NULL or false depending on type */ memset(mempool, 0, bytes_needed); - ctx = (*ctxp = (jar_xm_context_t*)mempool); + ctx = (*ctxp = (jar_xm_context_t *)mempool); ctx->allocated_memory = mempool; /* Keep original pointer for free() */ mempool += sizeof(jar_xm_context_t); @@ -685,20 +685,18 @@ int jar_xm_create_context_safe(jar_xm_context_t** ctxp, const char* moddata, siz return 0; } -void jar_xm_free_context(jar_xm_context_t* context) { - free(context->allocated_memory); +void jar_xm_free_context(jar_xm_context_t* ctx) { + free(ctx->allocated_memory); } -void jar_xm_set_max_loop_count(jar_xm_context_t* context, uint8_t loopcnt) { - context->max_loop_count = loopcnt; +void jar_xm_set_max_loop_count(jar_xm_context_t* ctx, uint8_t loopcnt) { + ctx->max_loop_count = loopcnt; } -uint8_t jar_xm_get_loop_count(jar_xm_context_t* context) { - return context->loop_count; +uint8_t jar_xm_get_loop_count(jar_xm_context_t* ctx) { + return ctx->loop_count; } - - bool jar_xm_mute_channel(jar_xm_context_t* ctx, uint16_t channel, bool mute) { bool old = ctx->channels[channel - 1].muted; ctx->channels[channel - 1].muted = mute; diff --git a/src/raylib.h b/src/raylib.h index 1966f75ed..f8dd83591 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -478,10 +478,9 @@ typedef struct Wave { short channels; } Wave; -typedef struct MusicBuffer { - char *fileName; - int index; // index in musicStreams -} MusicBuffer; +// Music type (file streaming from memory) +// NOTE: Anything longer than ~10 seconds should be streamed +typedef struct Music *Music; // Texture formats // NOTE: Support depends on OpenGL version and platform @@ -897,23 +896,24 @@ Sound LoadSoundFromRES(const char *rresName, int resId); // Load sound to void UnloadSound(Sound sound); // Unload sound void PlaySound(Sound sound); // Play a sound void PauseSound(Sound sound); // Pause a sound +void ResumeSound(Sound sound); // Resume a paused sound void StopSound(Sound sound); // Stop playing a sound bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) -MusicBuffer LoadMusicBufferStream(char *fileName, int index); -int PlayMusicStream(MusicBuffer buffer); // Start music playing (open stream) -void UpdateMusicStream(MusicBuffer buffer); // Updates buffers for music streaming -void StopMusicStream(MusicBuffer buffer); // Stop music playing (close stream) -void PauseMusicStream(MusicBuffer buffer); // Pause music playing -void ResumeMusicStream(MusicBuffer buffer); // Resume playing paused music -bool IsMusicPlaying(MusicBuffer buffer); // Check if music is playing -void SetMusicVolume(MusicBuffer buffer, float volume); // Set volume for music (1.0 is max level) -void SetMusicPitch(MusicBuffer buffer, float pitch); // Set pitch for a music (1.0 is base level) -float GetMusicTimeLength(MusicBuffer buffer); // Get music time length (in seconds) -float GetMusicTimePlayed(MusicBuffer buffer); // Get current music time played (in seconds) -int GetMusicStreamCount(void); // Get number of streams loaded +Music LoadMusicStream(char *fileName); // Load music stream from file +void UnloadMusicStream(Music music); // Unload music stream +void PlayMusicStream(Music music); // Start music playing (open stream) +void UpdateMusicStream(Music music); // Updates buffers for music streaming +void StopMusicStream(Music music); // Stop music playing (close stream) +void PauseMusicStream(Music music); // Pause music playing +void ResumeMusicStream(Music music); // Resume playing paused music +bool IsMusicPlaying(Music music); // Check if music is playing +void SetMusicVolume(Music music, float volume); // Set volume for music (1.0 is max level) +void SetMusicPitch(Music music, float pitch); // Set pitch for a music (1.0 is base level) +float GetMusicTimeLength(Music music); // Get music time length (in seconds) +float GetMusicTimePlayed(Music music); // Get current music time played (in seconds) #ifdef __cplusplus } From 2dc5f580a6b18345be999bf70dcbfd563459de5d Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 1 Aug 2016 12:58:30 +0200 Subject: [PATCH 013/102] Removed audio errors register --- src/audio.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/src/audio.c b/src/audio.c index 94bbb376e..2ff567372 100644 --- a/src/audio.c +++ b/src/audio.c @@ -125,28 +125,6 @@ typedef struct Music { unsigned int samplesLeft; // Number of samples left to end } MusicData, *Music; -// Audio errors to register -/* -typedef enum { - ERROR_RAW_CONTEXT_CREATION = 1, - ERROR_XM_CONTEXT_CREATION = 2, - ERROR_MOD_CONTEXT_CREATION = 4, - ERROR_MIX_CHANNEL_CREATION = 8, - ERROR_MUSIC_CHANNEL_CREATION = 16, - ERROR_LOADING_XM = 32, - ERROR_LOADING_MOD = 64, - ERROR_LOADING_WAV = 128, - ERROR_LOADING_OGG = 256, - ERROR_OUT_OF_MIX_CHANNELS = 512, - ERROR_EXTENSION_NOT_RECOGNIZED = 1024, - ERROR_UNABLE_TO_OPEN_RRES_FILE = 2048, - ERROR_INVALID_RRES_FILE = 4096, - ERROR_INVALID_RRES_RESOURCE = 8192, - ERROR_UNINITIALIZED_CHANNELS = 16384, - ERROR_UNINTIALIZED_MUSIC_BUFFER = 32768 -} AudioError; -*/ - #if defined(AUDIO_STANDALONE) typedef enum { INFO = 0, ERROR, WARNING, DEBUG, OTHER } TraceLogType; #endif @@ -154,7 +132,7 @@ typedef enum { INFO = 0, ERROR, WARNING, DEBUG, OTHER } TraceLogType; //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- -static int lastAudioError = 0; // Registers last audio error +// ... //---------------------------------------------------------------------------------- // Module specific Functions Declaration From 36cf1f7dfd8865310c21b0f78cf1de9976d9197a Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 1 Aug 2016 18:05:07 +0200 Subject: [PATCH 014/102] Improved support for C++ Added compound literals (C99) alternative for C++ compilers that don't support this feature --- src/raylib.h | 89 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 62 insertions(+), 27 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index f8dd83591..4b9f6ca0b 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -235,33 +235,64 @@ // Some Basic Colors // NOTE: Custom raylib color palette for amazing visuals on WHITE background -#define LIGHTGRAY (Color){ 200, 200, 200, 255 } // Light Gray -#define GRAY (Color){ 130, 130, 130, 255 } // Gray -#define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray -#define YELLOW (Color){ 253, 249, 0, 255 } // Yellow -#define GOLD (Color){ 255, 203, 0, 255 } // Gold -#define ORANGE (Color){ 255, 161, 0, 255 } // Orange -#define PINK (Color){ 255, 109, 194, 255 } // Pink -#define RED (Color){ 230, 41, 55, 255 } // Red -#define MAROON (Color){ 190, 33, 55, 255 } // Maroon -#define GREEN (Color){ 0, 228, 48, 255 } // Green -#define LIME (Color){ 0, 158, 47, 255 } // Lime -#define DARKGREEN (Color){ 0, 117, 44, 255 } // Dark Green -#define SKYBLUE (Color){ 102, 191, 255, 255 } // Sky Blue -#define BLUE (Color){ 0, 121, 241, 255 } // Blue -#define DARKBLUE (Color){ 0, 82, 172, 255 } // Dark Blue -#define PURPLE (Color){ 200, 122, 255, 255 } // Purple -#define VIOLET (Color){ 135, 60, 190, 255 } // Violet -#define DARKPURPLE (Color){ 112, 31, 126, 255 } // Dark Purple -#define BEIGE (Color){ 211, 176, 131, 255 } // Beige -#define BROWN (Color){ 127, 106, 79, 255 } // Brown -#define DARKBROWN (Color){ 76, 63, 47, 255 } // Dark Brown +#ifdef __cplusplus + // NOTE: MSC C++ compiler does not support compound literals (C99 feature) + #define LIGHTGRAY Color(200, 200, 200, 255) // Light Gray + #define GRAY Color(130, 130, 130, 255) // Gray + #define DARKGRAY Color(80, 80, 80, 255) // Dark Gray + #define YELLOW Color(253, 249, 0, 255) // Yellow + #define GOLD Color(255, 203, 0, 255) // Gold + #define ORANGE Color(255, 161, 0, 255) // Orange + #define PINK Color(255, 109, 194, 255) // Pink + #define RED Color(230, 41, 55, 255) // Red + #define MAROON Color(190, 33, 55, 255) // Maroon + #define GREEN Color(0, 228, 48, 255) // Green + #define LIME Color(0, 158, 47, 255) // Lime + #define DARKGREEN Color(0, 117, 44, 255) // Dark Green + #define SKYBLUE Color(102, 191, 255, 255) // Sky Blue + #define BLUE Color(0, 121, 241, 255) // Blue + #define DARKBLUE Color(0, 82, 172, 255) // Dark Blue + #define PURPLE Color(200, 122, 255, 255) // Purple + #define VIOLET Color(135, 60, 190, 255) // Violet + #define DARKPURPLE Color(112, 31, 126, 255) // Dark Purple + #define BEIGE Color(211, 176, 131, 255) // Beige + #define BROWN Color(127, 106, 79, 255) // Brown + #define DARKBROWN Color(76, 63, 47, 255) // Dark Brown -#define WHITE (Color){ 255, 255, 255, 255 } // White -#define BLACK (Color){ 0, 0, 0, 255 } // Black -#define BLANK (Color){ 0, 0, 0, 0 } // Blank (Transparent) -#define MAGENTA (Color){ 255, 0, 255, 255 } // Magenta -#define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo) + #define WHITE Color(255, 255, 255, 255) // White + #define BLACK Color(0, 0, 0, 255) // Black + #define BLANK Color(0, 0, 0, 0) // Blank (Transparent) + #define MAGENTA Color(255, 0, 255, 255) // Magenta + #define RAYWHITE Color(245, 245, 245, 255) // My own White (raylib logo) +#else + #define LIGHTGRAY (Color){ 200, 200, 200, 255 } // Light Gray + #define GRAY (Color){ 130, 130, 130, 255 } // Gray + #define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray + #define YELLOW (Color){ 253, 249, 0, 255 } // Yellow + #define GOLD (Color){ 255, 203, 0, 255 } // Gold + #define ORANGE (Color){ 255, 161, 0, 255 } // Orange + #define PINK (Color){ 255, 109, 194, 255 } // Pink + #define RED (Color){ 230, 41, 55, 255 } // Red + #define MAROON (Color){ 190, 33, 55, 255 } // Maroon + #define GREEN (Color){ 0, 228, 48, 255 } // Green + #define LIME (Color){ 0, 158, 47, 255 } // Lime + #define DARKGREEN (Color){ 0, 117, 44, 255 } // Dark Green + #define SKYBLUE (Color){ 102, 191, 255, 255 } // Sky Blue + #define BLUE (Color){ 0, 121, 241, 255 } // Blue + #define DARKBLUE (Color){ 0, 82, 172, 255 } // Dark Blue + #define PURPLE (Color){ 200, 122, 255, 255 } // Purple + #define VIOLET (Color){ 135, 60, 190, 255 } // Violet + #define DARKPURPLE (Color){ 112, 31, 126, 255 } // Dark Purple + #define BEIGE (Color){ 211, 176, 131, 255 } // Beige + #define BROWN (Color){ 127, 106, 79, 255 } // Brown + #define DARKBROWN (Color){ 76, 63, 47, 255 } // Dark Brown + + #define WHITE (Color){ 255, 255, 255, 255 } // White + #define BLACK (Color){ 0, 0, 0, 255 } // Black + #define BLANK (Color){ 0, 0, 0, 0 } // Blank (Transparent) + #define MAGENTA (Color){ 255, 0, 255, 255 } // Magenta + #define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo) +#endif //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -308,6 +339,9 @@ typedef struct Color { unsigned char g; unsigned char b; unsigned char a; +#ifdef __cplusplus + Color(unsigned char cr, unsigned char cg, unsigned char cb, unsigned char ca) : r(cr), g(cg), b(cb), a(ca) { } +#endif } Color; // Rectangle type @@ -819,7 +853,8 @@ Model LoadModelFromRES(const char *rresName, int resId); // Load a 3d mod Model LoadHeightmap(Image heightmap, Vector3 size); // Load a heightmap image as a 3d model Model LoadCubicmap(Image cubicmap); // Load a map image as a 3d model (cubes based) void UnloadModel(Model model); // Unload 3d model from memory -Mesh GenMeshCube(float width, float height, float depth); + +Mesh GenMeshCube(float width, float height, float depth); // Generate mesh: cube Material LoadMaterial(const char *fileName); // Load material data (from file) Material LoadDefaultMaterial(void); // Load default material (uses default models shader) From 58d2f70b7e11aadb5eab5f9fa1c081b22a59ef91 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 1 Aug 2016 21:37:45 +0200 Subject: [PATCH 015/102] Review audio module and examples --- examples/audio_music_stream.c | 1 - examples/audio_standalone.c | 11 +- src/audio.c | 181 ++++++++------------- templates/android_project/jni/basic_game.c | 8 +- 4 files changed, 76 insertions(+), 125 deletions(-) diff --git a/examples/audio_music_stream.c b/examples/audio_music_stream.c index b96b85f7d..1d86bd1ad 100644 --- a/examples/audio_music_stream.c +++ b/examples/audio_music_stream.c @@ -54,7 +54,6 @@ int main() { volume = 1.0; framesCounter = 0; - PlayMusicStream(1, "resources/audio/another_file.ogg"); } SetMusicVolume(volume); diff --git a/examples/audio_standalone.c b/examples/audio_standalone.c index f6e115db5..c716faedb 100644 --- a/examples/audio_standalone.c +++ b/examples/audio_standalone.c @@ -39,7 +39,8 @@ int main() Sound fxWav = LoadSound("resources/audio/weird.wav"); // Load WAV audio file Sound fxOgg = LoadSound("resources/audio/tanatana.ogg"); // Load OGG audio file - PlayMusicStream(0, "resources/audio/guitar_noodling.ogg"); + Music music = LoadMusicStream("resources/audio/guitar_noodling.ogg"); + PlayMusicStream(music); printf("\nPress s or d to play sounds...\n"); @@ -59,11 +60,13 @@ int main() key = 0; } - UpdateMusicStream(0); + UpdateMusicStream(music); } - UnloadSound(fxWav); // Unload sound data - UnloadSound(fxOgg); // Unload sound data + UnloadSound(fxWav); // Unload sound data + UnloadSound(fxOgg); // Unload sound data + + UnloadMusicStream(music); // Unload music stream data CloseAudioDevice(); diff --git a/src/audio.c b/src/audio.c index 2ff567372..d1c425d5f 100644 --- a/src/audio.c +++ b/src/audio.c @@ -86,13 +86,13 @@ //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- -#define MAX_STREAM_BUFFERS 2 // Number of buffers for each audio stream +#define MAX_STREAM_BUFFERS 2 // Number of buffers for each audio stream // NOTE: Music buffer size is defined by number of samples, independent of sample size // After some math, considering a sampleRate of 48000, a buffer refill rate of 1/60 seconds // and double-buffering system, I concluded that a 4096 samples buffer should be enough -// In case of music-stalls, just inclease this number -#define AUDIO_BUFFER_SIZE 4096 // PCM data samples (i.e. short: 32Kb) +// In case of music-stalls, just increase this number +#define AUDIO_BUFFER_SIZE 4096 // PCM data samples (i.e. short: 32Kb) //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -141,12 +141,12 @@ static Wave LoadWAV(const char *fileName); // Load WAV file static Wave LoadOGG(char *fileName); // Load OGG file static void UnloadWave(Wave wave); // Unload wave data -static AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); -static void CloseAudioStream(AudioStream stream); // Frees mix channel -static int BufferAudioStream(AudioStream stream, void *data, int numberElements); // Pushes more audio data into mix channel - static bool BufferMusicStream(Music music, int numBuffersToProcess); // Fill music buffers with data +static AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); +static void BufferAudioStream(AudioStream stream, void *data, int numSamples); +static void CloseAudioStream(AudioStream stream); + #if defined(AUDIO_STANDALONE) const char *GetExtension(const char *fileName); // Get the extension for a filename void TraceLog(int msgType, const char *text, ...); // Outputs a trace log message (INFO, ERROR, WARNING) @@ -492,27 +492,23 @@ Music LoadMusicStream(char *fileName) // Open ogg audio stream music->ctxOgg = stb_vorbis_open_filename(fileName, NULL, NULL); - if (music->ctxOgg == NULL) - { - TraceLog(WARNING, "[%s] OGG audio file could not be opened", fileName); - } + if (music->ctxOgg == NULL) TraceLog(WARNING, "[%s] OGG audio file could not be opened", fileName); else { stb_vorbis_info info = stb_vorbis_get_info(music->ctxOgg); // Get Ogg file info - - TraceLog(DEBUG, "[%s] Ogg sample rate: %i", fileName, info.sample_rate); - TraceLog(DEBUG, "[%s] Ogg channels: %i", fileName, info.channels); - TraceLog(DEBUG, "[%s] Temp memory required: %i", fileName, info.temp_memory_required); + //float totalLengthSeconds = stb_vorbis_stream_length_in_seconds(music->ctxOgg); // TODO: Support 32-bit sampleSize OGGs music->stream = InitAudioStream(info.sample_rate, 16, info.channels); - music->totalSamples = (unsigned int)stb_vorbis_stream_length_in_samples(music->ctxOgg)*info.channels; music->samplesLeft = music->totalSamples; - //float totalLengthSeconds = stb_vorbis_stream_length_in_seconds(music->ctxOgg); - music->ctxType = MUSIC_AUDIO_OGG; music->loop = true; // We loop by default + + TraceLog(DEBUG, "[%s] OGG sample rate: %i", fileName, info.sample_rate); + TraceLog(DEBUG, "[%s] OGG channels: %i", fileName, info.channels); + TraceLog(DEBUG, "[%s] OGG memory required: %i", fileName, info.temp_memory_required); + } } else if (strcmp(GetExtension(fileName), "xm") == 0) @@ -523,17 +519,15 @@ Music LoadMusicStream(char *fileName) { jar_xm_set_max_loop_count(music->ctxXm, 0); // Set infinite number of loops - music->totalSamples = (unsigned int)jar_xm_get_remaining_samples(music->ctxXm); - music->samplesLeft = music->totalSamples; - - TraceLog(INFO, "[%s] XM number of samples: %i", fileName, music->totalSamples); - TraceLog(INFO, "[%s] XM track length: %11.6f sec", fileName, (float)music->totalSamples/48000.0f); - // NOTE: Only stereo is supported for XM music->stream = InitAudioStream(48000, 32, 2); - + music->totalSamples = (unsigned int)jar_xm_get_remaining_samples(music->ctxXm); + music->samplesLeft = music->totalSamples; music->ctxType = MUSIC_MODULE_XM; music->loop = true; + + TraceLog(DEBUG, "[%s] XM number of samples: %i", fileName, music->totalSamples); + TraceLog(DEBUG, "[%s] XM track length: %11.6f sec", fileName, (float)music->totalSamples/48000.0f); } else TraceLog(WARNING, "[%s] XM file could not be opened", fileName); } @@ -543,16 +537,14 @@ Music LoadMusicStream(char *fileName) if (jar_mod_load_file(&music->ctxMod, fileName)) { + music->stream = InitAudioStream(48000, 16, 2); music->totalSamples = (unsigned int)jar_mod_max_samples(&music->ctxMod); music->samplesLeft = music->totalSamples; + music->ctxType = MUSIC_MODULE_MOD; + music->loop = true; TraceLog(INFO, "[%s] MOD number of samples: %i", fileName, music->samplesLeft); TraceLog(INFO, "[%s] MOD track length: %11.6f sec", fileName, (float)music->totalSamples/48000.0f); - - music->stream = InitAudioStream(48000, 16, 2); - - music->ctxType = MUSIC_MODULE_MOD; - music->loop = true; } else TraceLog(WARNING, "[%s] MOD file could not be opened", fileName); } @@ -799,42 +791,18 @@ static void CloseAudioStream(AudioStream stream) } // Push more audio data into audio stream, only one buffer per call -// NOTE: Returns number of samples that were processed -static int BufferAudioStream(AudioStream stream, void *data, int numberElements) -{ - if (!data || !numberElements) - { - // Pauses audio until data is given - alSourcePause(stream.source); - return 0; - } - +static void BufferAudioStream(AudioStream stream, void *data, int numSamples) +{ ALuint buffer = 0; alSourceUnqueueBuffers(stream.source, 1, &buffer); - if (!buffer) return 0; - - // Reference - //void alBufferData(ALuint bufferName, ALenum format, const ALvoid *data, ALsizei size, ALsizei frequency); - - // ALuint bufferName: buffer id - // ALenum format: Valid formats are - // AL_FORMAT_MONO8, // unsigned char - // AL_FORMAT_MONO16, // short - // AL_FORMAT_STEREO8, - // AL_FORMAT_STEREO16 // stereo data is interleaved: left+right channels sample - // AL_FORMAT_MONO_FLOAT32 (extension) - // AL_FORMAT_STEREO_FLOAT32 (extension) - // ALsizei size: Number of bytes, must be coherent with format - // ALsizei frequency: sample rate - - if (stream.sampleSize == 8) alBufferData(buffer, stream.format, (unsigned char *)data, numberElements*sizeof(unsigned char), stream.sampleRate); - else if (stream.sampleSize == 16) alBufferData(buffer, stream.format, (short *)data, numberElements*sizeof(short), stream.sampleRate); - else if (stream.sampleSize == 32) alBufferData(buffer, stream.format, (float *)data, numberElements*sizeof(float), stream.sampleRate); + //TraceLog(DEBUG, "Buffer to refill: %i", buffer); + + if (stream.sampleSize == 8) alBufferData(buffer, stream.format, (unsigned char *)data, numSamples*sizeof(unsigned char), stream.sampleRate); + else if (stream.sampleSize == 16) alBufferData(buffer, stream.format, (short *)data, numSamples*sizeof(short), stream.sampleRate); + else if (stream.sampleSize == 32) alBufferData(buffer, stream.format, (float *)data, numSamples*sizeof(float), stream.sampleRate); alSourceQueueBuffers(stream.source, 1, &buffer); - - return numberElements; } // Fill music buffers with new data from music stream @@ -845,70 +813,49 @@ static bool BufferMusicStream(Music music, int numBuffersToProcess) int size = 0; // Total size of data steamed in L+R samples for xm floats, individual L or R for ogg shorts bool active = true; // We can get more data from stream (not finished) - - if (music->ctxType == MUSIC_MODULE_XM) // There is no end of stream for xmfiles, once the end is reached zeros are generated for non looped chiptunes. - { - for (int i = 0; i < numBuffersToProcess; i++) - { - if (music->samplesLeft >= AUDIO_BUFFER_SIZE) size = AUDIO_BUFFER_SIZE/2; - else size = music->samplesLeft/2; - - // Read 2*shorts and moves them to buffer+size memory location - jar_xm_generate_samples(music->ctxXm, pcmf, size); - - BufferAudioStream(music->stream, pcmf, size*2); - - music->samplesLeft -= size; - - if (music->samplesLeft <= 0) - { - active = false; - break; - } - } - } - else if (music->ctxType == MUSIC_MODULE_MOD) - { - for (int i = 0; i < numBuffersToProcess; i++) - { - if (music->samplesLeft >= AUDIO_BUFFER_SIZE) size = AUDIO_BUFFER_SIZE/2; - else size = music->samplesLeft/2; - - jar_mod_fillbuffer(&music->ctxMod, pcm, size, 0); - - BufferAudioStream(music->stream, pcm, size*2); - - music->samplesLeft -= size; - - if (music->samplesLeft <= 0) - { - active = false; - break; - } - } - } - else if (music->ctxType == MUSIC_AUDIO_OGG) + + for (int i = 0; i < numBuffersToProcess; i++) { if (music->samplesLeft >= AUDIO_BUFFER_SIZE) size = AUDIO_BUFFER_SIZE; else size = music->samplesLeft; - for (int i = 0; i < numBuffersToProcess; i++) + switch (music->ctxType) { - // NOTE: Returns the number of samples stored per channel - int numSamples = stb_vorbis_get_samples_short_interleaved(music->ctxOgg, music->stream.channels, pcm, size); - - BufferAudioStream(music->stream, pcm, numSamples*music->stream.channels); - - music->samplesLeft -= (numSamples*music->stream.channels); - - if (music->samplesLeft <= 0) + case MUSIC_AUDIO_OGG: { - active = false; - break; - } + // NOTE: Returns the number of samples to process (should be the same as size) + int numSamples = stb_vorbis_get_samples_short_interleaved(music->ctxOgg, music->stream.channels, pcm, size); + + BufferAudioStream(music->stream, pcm, numSamples*music->stream.channels); + music->samplesLeft -= (numSamples*music->stream.channels); + + } break; + case MUSIC_MODULE_XM: + { + // NOTE: Output buffer is 2*numsamples elements (left and right value for each sample) + jar_xm_generate_samples(music->ctxXm, pcmf, size/2); + BufferAudioStream(music->stream, pcmf, size); // Using 32bit PCM data + music->samplesLeft -= (size/2); + + } break; + case MUSIC_MODULE_MOD: + { + // NOTE: Output buffer size is nbsample*channels (default: 48000Hz, 16bit, Stereo) + jar_mod_fillbuffer(&music->ctxMod, pcm, size/2, 0); + BufferAudioStream(music->stream, pcm, size); + music->samplesLeft -= (size/2); + + } break; + default: break; + } + + if (music->samplesLeft <= 0) + { + active = false; + break; } } - + return active; } diff --git a/templates/android_project/jni/basic_game.c b/templates/android_project/jni/basic_game.c index a1adb2873..4e8bef31e 100644 --- a/templates/android_project/jni/basic_game.c +++ b/templates/android_project/jni/basic_game.c @@ -43,7 +43,8 @@ void android_main(struct android_app *app) int framesCounter = 0; // Used to count frames - PlayMusicStream(0, "ambient.ogg"); + Music ambient = LoadMusicStream("ambient.ogg"); + PlayMusicStream(ambient); SetTargetFPS(60); // Not required on Android, already locked to 60 fps //-------------------------------------------------------------------------------------- @@ -53,7 +54,7 @@ void android_main(struct android_app *app) { // Update //---------------------------------------------------------------------------------- - UpdateMusicStream(0); + UpdateMusicStream(ambient); switch(currentScreen) { @@ -158,7 +159,8 @@ void android_main(struct android_app *app) // TODO: Unload all loaded data (textures, fonts, audio) here! - UnloadSound(fx); // Unload sound data + UnloadSound(fx); // Unload sound data + UnloadMusicStream(ambient); // Unload music stream data CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) From 68d647c1af1b9f0479f680dbd7c4f93586cd51a2 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 2 Aug 2016 17:32:24 +0200 Subject: [PATCH 016/102] Complete review and update Simplified module for Music and AudioStream Added support for raw audio streaming (with example) --- examples/audio_module_playing.c | 2 +- examples/audio_music_stream.c | 3 - examples/audio_raw_stream.c | 106 +++++++++++ examples/audio_sound_loading.c | 1 - examples/resources/audio/2t2m_spa.xm | Bin 2287400 -> 0 bytes examples/resources/audio/chiptun1.mod | Bin 0 -> 2142 bytes examples/resources/audio/mini1111.xm | Bin 0 -> 25676 bytes src/audio.c | 242 +++++++++++++------------- src/audio.h | 27 ++- src/raylib.h | 29 ++- 10 files changed, 283 insertions(+), 127 deletions(-) create mode 100644 examples/audio_raw_stream.c delete mode 100644 examples/resources/audio/2t2m_spa.xm create mode 100644 examples/resources/audio/chiptun1.mod create mode 100644 examples/resources/audio/mini1111.xm diff --git a/examples/audio_module_playing.c b/examples/audio_module_playing.c index 07165c762..fe9ea15ca 100644 --- a/examples/audio_module_playing.c +++ b/examples/audio_module_playing.c @@ -57,7 +57,7 @@ int main() // Create a RenderTexture2D to be used for render to texture RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight); - Music xm = LoadMusicStream("resources/audio/2t2m_spa.xm"); + Music xm = LoadMusicStream("resources/audio/mini1111.xm"); PlayMusicStream(xm); diff --git a/examples/audio_music_stream.c b/examples/audio_music_stream.c index 1d86bd1ad..c552d0304 100644 --- a/examples/audio_music_stream.c +++ b/examples/audio_music_stream.c @@ -59,9 +59,6 @@ int main() SetMusicVolume(volume); } */ - if (IsWindowMinimized()) PauseMusicStream(music); - else ResumeMusicStream(music); - timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*100*4; // We scale by 4 to fit 400 pixels UpdateMusicStream(music); // Update music buffer with new stream data diff --git a/examples/audio_raw_stream.c b/examples/audio_raw_stream.c new file mode 100644 index 000000000..37a5b4ff0 --- /dev/null +++ b/examples/audio_raw_stream.c @@ -0,0 +1,106 @@ +/******************************************************************************************* +* +* raylib [audio] example - Raw audio streaming +* +* NOTE: This example requires OpenAL Soft library installed +* +* This example has been created using raylib 1.6 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include // Required for: malloc(), free() +#include // Required for: sinf() + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + SetConfigFlags(FLAG_MSAA_4X_HINT); + InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming"); + + InitAudioDevice(); // Initialize audio device + + AudioStream stream = InitAudioStream(44100, 32, 1); // Init raw audio stream + + // Fill audio stream with some samples (sine wave) + float *data = (float *)malloc(sizeof(float)*44100); + + for (int i = 0; i < 44100; i++) + { + data[i] = sinf(2*PI*(float)i*DEG2RAD); + } + + PlayAudioStream(stream); + + int totalSamples = 44100; + int samplesLeft = totalSamples; + + Vector2 position = { 0, 0 }; + + SetTargetFPS(30); // Set our game to run at 30 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + + // Refill audio stream if required + if (IsAudioBufferProcessed(stream)) + { + int numSamples = 0; + if (samplesLeft >= 4096) numSamples = 4096; + else numSamples = samplesLeft; + + UpdateAudioStream(stream, data + (totalSamples - samplesLeft), numSamples); + + samplesLeft -= numSamples; + + // Reset samples feeding (loop audio) + if (samplesLeft <= 0) samplesLeft = totalSamples; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawText("SINE WAVE SHOULD BE PLAYING!", 240, 140, 20, LIGHTGRAY); + + // NOTE: Draw a part of the sine wave (only screen width) + for (int i = 0; i < GetScreenWidth(); i++) + { + position.x = i; + position.y = 250 + 50*data[i]; + + DrawPixelV(position, RED); + } + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + free(data); // Unload sine wave data + + CloseAudioStream(stream); // Close raw audio stream and delete buffers from RAM + + CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/audio_sound_loading.c b/examples/audio_sound_loading.c index 8819aad11..f081e8ed3 100644 --- a/examples/audio_sound_loading.c +++ b/examples/audio_sound_loading.c @@ -36,7 +36,6 @@ int main() // Update //---------------------------------------------------------------------------------- if (IsKeyPressed(KEY_SPACE)) PlaySound(fxWav); // Play WAV sound - if (IsKeyPressed(KEY_ENTER)) PlaySound(fxOgg); // Play OGG sound //---------------------------------------------------------------------------------- diff --git a/examples/resources/audio/2t2m_spa.xm b/examples/resources/audio/2t2m_spa.xm deleted file mode 100644 index fa416ef293201e1ceb26d62fa1a23a71de29fc38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2287400 zcmeFa-H#ndmM2D)M(Seoszvcj{8sV%Q&f?ZN~L05R@G&x$YPNtVrCk>(=fa%?99W$ zV|%b(561gcjhn{RzWQl)dmA?32mcwCXJBIh_o6ZLw6LH2<|jjd;pg%17m@Lq5t$L0 zNmezL_p&bY=8gR2iQhSKBJ#w^$gltEU;WvC@uz?GrwcFt%Rl|E|NPHZ7XIijzWwKa z_NV{iFaPXcF6h_Ut#ALUfAz=z^4ov@pJDG`KDf8Ih@bx8ofGdII<$7^(4hr<-aGWp zp?44cyF=&BA9`o*-9LEm{h!Pq{^^m?2S5Ap=tsv+96x#LY^PV|j*~ll zbgix7t-Ey8=?Th(511U8!$+suo&1R-*l3lO z0zKfPy&kC7k6BZEbg!wAtveQ2yA0MY%eH!gHN{8!n)WFhSvy14@Ntk@DLA_h&aO+& zPLeZx91PAN+fB%Jb7k%vnZw6HVvZU;Pr2~Hwh!j;(VjWf_6}-$r+@#}T{hPBBI}Be zPVJOU3KXHP_fXe+{rNX(zaLWz_-Lbr+2q(FBpV-Jm`#o^0AXeB6IK}?ovK{Q(oa=q zleq^V?t!fCX;v2>ZK^Aep+1P!M-3-)m&g}B`fH|Lk-*my_*!BeC-A-C3m@J1>Z^f5 zwq?k+Jej*f-tf`2w*7Wklew#u3m=oYvt$k*?U_SuAECC7`eIL6ZXdD{YchA8wZ%vG zwt%`mMqMBG)8>sU(o`)2dic9!!ZSK|KcP9LhbzWed@zDyk#AG#z)}eKk zNR)4p%>f_X(TxA?f_1sLT=E9FUL8Kfny!(uNqgQTrjf5xn<$KgM=9aaemLw`#w*1Y zVPZzMt{h54+Ve@)`eYA&uaKC^p8JuIXr|WPG<~(WTH4}S*7m_@)$=>Zg*prxjv1cS)q=bv6 z-F0EHUm0%{H+uGj5|N(p0c-uB4^JpDsh2*qT&;7rc6_tASz6*(tnpXf{h&nbr@phz zV~a$ZZ64=Pa8Zb=hBcikj$z#W;y&;?R~SeSiU)hkU~iq4v)+T6f%&j_xTi?$TGP*q z&r#E5js-YO$&1t-EUa zaq(Ex`IoHoFZ;0WwPMZEa`!r~7we9myViK4*s$d5iZ&@Gg1>)8{{C4%ZTU&@q(=!i zi%o~WZhr9V;_Dt|+bXsMdw)*${=6Udo)%Agl<-;cOi1__l<+T1yX(f{cCp=~jL(bb zj)uFpxt(H1)cUVj>%Z#96TT>3h&uP9<(I`vr_Np5@oupzYW%NRiEy!-vnj)IIeh6q<>oN%@>y0q66?1K&Cu*i#QLO61@ z8_t-mW`iHZ6C<2ej&)|^(Up}ECghrAj7Ybqsg(^8^}Vv1gtsz6K35cV%;DmOi65f= zSH{GR9#Q_VIzswdq!356wnfRxC(PrHN65yCfRb5AT1FH_5OzZ_E0{!iGij%_tc-3Yl2I?U1a;`RH6A5QH`b}p zwhm1OBwk4Y&bDR{ks$BN=ybGYn>I*?Y>_b@-As~sb%eahh))W%z?ISM)ltHv*h&qo z&2j1OS4X$UDX^K+jz@P_Qeek5(nc9x8QonSCCt&*Q4wHxb#yn83Z!mE6lY{MOhZO(&4qfbR{B-G@?YC4(*E4 zEgET{RbYyWy*?e7Q0dsiqu< z6a+ICeaJJ6@#xbedD%lA5|yrgD2go-K1(#>IB02Y)?7PATc0NCEe=ar9d^f~dn+kk zlLMO=0ReW!>^rU+?j^e9IJl8m^Se5_Gft7YPH9GFVZ}DjDRThYK_E(kk&4_o(|peq|B=$j1Ci0Tk4cZmW}$feTSbRXHo$QDC0`si$}j=~bOw!ampUo}GOv!V(JMB>)+x@&Y?`)i zeb+=(OPWvolOd&;0)tXt6~V1Ip!}td4BIZOW<4HVUBNgwfspuk)(}$h%m~UQfK!4x zI=t2=VsZ(vbpw2x4(*CWP%;6y?pntuLt91~6&RA7j;NW2QDNdTWogtNhGs5m8CL#V zgq20k=>ifBPUF6z(>w`wiQ$GYZ~VM8y4Et5T%0cCc_}xLR@x(-Db7GHM(0f)rRb=I zG0)aU*OnNkZ4*x}B(~zW)EH_l+Hxb}QaC1AqE>UU$ifF2g3Dk5-W6+v@2Ec(;D&Fmn4@Ta;YbMmJ)@l6RuyY;jh|WF)ruPE}{jN+h_U z#q-Tw)hXdso3Z5Xs!juJXwe=zm6Vu`he`2Te3PBTEZj&gx$d15+m~ocx>~m{wFZVF zJ6ZR+;vBt=crh~XG&n(up}aH8848ZOx$Y8_*}aE^8FKjUy6(j5(MXDcxaUY&pf(b5 zah@hZ%E#e7~Xjjmb@b+@|G4OvBh_)I^$NtJ3S07p4;xOPQt53W69lJ zoxHz-z=jrWE2*T!ZJgjfDP;rdP6_Y3Fm}=_De{(%043e6`&Mzwl3H^OMRv4q0voRB zwJl0gRT;PM+r{mW+}+hkU^|z;w2$tVeW$n+k~o!$xK$H4%5--^?iP1La(5?$z(#Ik z-KIr$^xU5opGG9_Xxjv~ZKPMrzE|9{XzAT^6aKY$?$3(P98$C|>2BeKHkRTHFH`Ls zLzt5guktDui^VQ{xPWCW`+xd)_Vb?{H4B&KXGza~aq^f8U4BF3aQEX(A6a|K=(d|H zorPx3%lU&oGo~RbmUAs%$_C5UUQL>g3cXj&n+CF2vZBNmvjw%O(*&RGo?1}SIR94@ zsDW>+$8_?#Z$JXMJ@pY6y_$0hXfg94BoH$;{bo`F|6^UdK9i{dY$kGy;1%vG`P6mn z_?Hhj3Flhm%Mh=9OC_rs;Ks((f#Uya@DAWI=q<|`$;CX5Okq!*S*~6P0-Zreg^lZ1 zp;*tMSJJC9DyubO}iaIPGpUdAHzu+dA$CU}j_ z`zhqW=gJ!L6%f9XKNc6hnwkx8E<7P$QRdrcX9Hg@$-pxNgip`y^|K&=%!LZ%%Sc|K zUnB(DHwM(v6FA8&b&jz3UV3XByqd>>8t}?ay^Q3J&8Ma0R?|6ven&x9a+Gzm6`HkE zwlgbmSD%8)^%`tNxdgAVd_RW`Rp4cfdKrSW_!Zk%WxfBa*`C0@$3hev{}}`FT)mgX zjT)G7mva){qIJmGgH!MVM81Obc&XfRa9(#FQc&W5fG=VrGod?vhH8p1&cNj`)XU+e zlGYsuW-j0%1tR_j@B_U=5Z`ZdH}D^7e8syqnU#^3-<>Hs7tT;GVUc$BaV5)};CUAR zg#x$yjULu}>E3bCgX&z;&;i!FCVhkTFEu_{_r{g&^S*(+tdWi674j>o-=N1_$!G*_ z1pUERx=2ubF9AFb9<+F_$Dv+Ea^dN_rh$W>M+#axGSQwq{zINV!cNeYt?E;#CS?g< z$p_H#NjiB&c97Mg0Me1?AmpM-G8k-N0^R)uEe7$BqbR8QJp3&n&8jBlXW=rpgGT%Ot z9QaQ)et>xq1#Oi}4&-MV*+^cYzmlaA*KLrVZGDoU_+CJ9lS7kq4CL%*I+9-<_(q~xT@j;CF*4evTVN^z>L~{0Df0tSLi7l zZ)G6}RKWxf_0im@WSzr8ztJUv^mvKqHQ15d^Z)(y^yfdpd5-EwjbZKMj6C${8Bu*L zy4aBCVZgpVA3Yb5LHjZp+aznzj=JZiOOY8=wX(elUFue)^qJ)JsPKE$bXAGY=ubwH zI!_RF{na?HJO?i%tr|FE5lm6J$$jxEROewOJO_6{4Oq!aiYgSXeZ^>Eo2*npx8n9G zkg^7Bkd+!V=RxLE#fW}wHQW@s_z7Y>F{)q4WMVsa*3v{p;W#4niWw6l`{fx-d-E;< zD%#Gk2&4PuX_V))Dp655PmtX%7~!|hVHB=#hq(U)icna0Vb=i3&ye?SZoZO`521g=0dmn6^0+5U)hV zd4!;`FQ#YC22^TboQG-EU0Vfb1Zu0%wYT7`Kv7K?@3BpAW}rO7>+CJ=n$x_t-hwj( z0kX80s%|<3oJ2@W$B$Q`nusAsw{jvOIW3AFofWk;r)maS~%<&c%Le%4kgW za_*sc4f+03@$0e)rYHU9lO*RLiqz!)_z7Yh$$1EI0;2_X7`>!QOP=IhM3H(YKz=3U ze1tfG-NwstNW~ZO1lesu&Pf!hHwVNk5o-@}UP7E8s)?>GLe5PTz27My_5957P`P&v zc1RbA7FpCmRGky94MYr302YUYKbnbbQASQpVw$_2y! zUidrbBUULnk5Q!GY7plw)?VaXhB$?3FZKP0JW0GZm3t2)dvaDI`38h|RUGQ}#61Y> zhgRk{Kl+Em3wzs#zyI0a&$bW$4tM{K-@h zwYbQ4bGe!l8e+C}E|R)ZbF})Y_=Iout=0d0!gaCG>QHqMX%9ojym>1_OrTdBI7ggM}EW6OYUd{+hIt!7=gN*rd{-LR3p< zkUhq>$|tXePLi^Z!7K6LQK-e-L6~x+U54Qutn$#|MM4n25lb$#hv@?X0T?W!fb_Gi zbL|}wBOqARpv#L<0kOJ3dk|jp<0k(OFRG<8$R4ku#hL)^CE>*}?#~x$S!fNzC(Vjy z&9+7mkC??nX1l!jl-h0(R0|$UiwDzoc@=mXt#}@7dk{W?77w8nYB6_`=HeB2_$(ej z+u=1`IwD6Tv!(Z!5ZPG5Sfvx-9v@zd$Jcgw6?kH8u{@icvu{()1}yM|T0En+%d5a+ zX~lzS+kcrb34SAnPC;yJh-UQ`Pn zek&e-+a9LC^KS9P+b%B+0kxQWz;h7`JSG{}(G7iRT(82!eVgGbsT{SGdFE1SSn~v$^N9z<0&PZXdiQyOKqJ^yz;TKYwp z!SOK=8buy)b#G{og)-Zk|D9iiK+(i~zp#bn|CBBfTzwr*1vtFp^+G^Ntr)Jz+7C(v zHoT*blVm|W^~~;7Z060IjMb!2^NL9QG^sGB{$8J+%as|OOCAHJHf9ifv zeAM{&C@0B+cpv<26J_mv2^;pu`a(Hqy*5b)_W{Dg%51L2m2fKSLJyk=LO?AiQ?#t`svwB^$? z1bi%d>TH+>n0(dM1Z15vzUiqdUa4zR4`|G1 zw)OGiZ0q!5#RQsnyv89BPCi_aDgPw$YM`eD=xM=L%bUNFcgL_p!jG*Dmm9=*D+(LZ ze$+tU;VtXS;B=~V)p3#>Nw9--L)uT3WD!e{V;L0z!pbf~+E0in`@&;L`*9hHHP#^t zq&kNo3S=y%Aqq6z{CK+Q+;EWW@4exQIVHE+pbV)$E{Ecqms!73oT^OQ5wppm{Ha_#9W&#aSA*EG&C~Nj*ZpFrYgh@6V`vQ%} zF&`)pWZ3s?#UU!>Scj|ofWn5TkQ(?qyk&iHNzOV{6|R98LeWERkTR3X|3hw&bNyN2 z$KGMu*bo)6d5I4)hNzJ09EPZnv6z-oq3QS?gAv^_jkH=Md9Z3lmxj1dl}9eN=JFhg z3w2jn;N+oQt~5@GH-5WO+#OObX@hTy7*A2m6{?L5b(gD68v`xT=uopnvP6vqBy&!r zGI!`NPC!+dAX94t&2|s}PCS|uX+e5{AelZi+d6Z5wsGe6bY=A2Jf380(uuHukXH9} z{GMZ$u#%(2QEyk(blfMoM92*xIoI2I;Q_);$D@_e;`||qDo@W#xbQ6%?%7LWeWu;B zXNYKdSsh6d0^&SCBe)Zr5syQN*ZBC0d0pK$x}~d zrLNfFl3kXl!0=q(&952B;@5!bfLfdk6+2ca0fdG(WK&U)!utB6Ekiup0^N|5(C>!R zOb&_-$_SMZ@Vog9N5{R}Usxx8lT)Q^JDkZo+Jv^(9BoVesAH4~i2vWPF{*Hu;8HZ^ z1LYGXC6%^(Q0x%m3GI#@?e=bhj)Cw?x{-)p#8zor*C0;oIPeUlh!2E=etlg>hIqyY zn!G8Y*HuTa0LlDs!OmE!^8=OiA&&h)wpdl zIt>gOd{0|4XFFQa2o0kdn)mK5EAPJ(x?dSBxdday)Qlk_^{FBs6wPh286t{v32v7Pvp`<5|~)RLhT`Ju4k-B7%>KNBwsGgYOk*g*`Zh#7?0AW z1L~7yDA%(;LI~Y<>rjZ|D8r#GLp&jmLXz=2p;)(9$?T0Q()De2POk#Z_HK2`*O4Cm zsu+qYg@=GeSACM{U$bYpeBOj#T(0&vdkRLMh#QrYiJeMQWl^E3a$7}R^jEbJLUKYT zI{GIJb9J=rdPOV^mEjc~vxErl*>fz@LQ-o)l`Thjo#obE(E=76^}`~eRD@6c1vV*aMBT~n`5-C-k=DuX9GVu84Uf{7DQYOb7Sw83FWVS!b z?KPR40s9bi4BrnP@*>V<5A`zy9rJo{+X~4aEF7K4bO<`Ox4|Lkh)X*C%IU~`V;q8x zWyC|XsWy^)VcC|uT_aXHJm(rw$z%T?k}ceCx|fFsY~p1II@(GNUN$(ruQP@@*g?nO z+Fm;7`0&649oNJI?A6t}9duk8J#;UxRrJEq8NZ0DjLKebAnP{S43{m=pad)zeis9X zGAjD8_2o51*T9u}WQaI*SriiUI=K=Q&AqU$NZ8IZR$wUHck@;_bl-xGVdijsB9b@A zBwv{qgE+!ftV3IdVtHGqCtpJRn(F=*boI#i(+~ zb}Xr_{ugRtHjm;6p*A<5AAQbZI-nLNL&eUeqXZBd9s-X;;4zdE>|7+223PSnymHd7 zF2*3yGQ?>as>WIKB8+4~ywj40#y*m7`aP=3)da7 z`rf)%w~&UQqwrAxrrtECTjgfnslun!S49a&W=4V$#r%`A49O4-yE9f{G ziO$&?;$*r-2bf=4Pi46*3W)s%$l9a>V#W8tvQrBFZri(&hs933tTdV_1dL*8VqB}zKyHmLgms1mT z9FM$}Jr3F})@8O%rFYqf!D4OD@%LzLvf&o%V6S2~x8W9R;eZ?$C>>6YuPkq|-sLUU z)&R1+#d>G{dv3w~u6;aRJ3U*&x)fZmr(D)i&3CKmm9!HJvA-$s=9YZ5_nT`+ie0{m zQ;sF28%BrjuIX3~g~~IU|J-wz`-_)+TZIBVn_tyIP9e4PMS-{YqSnaf8IeIOE)=c% zKQhOX#SY&_2)7KYIYo`|lVt22(UEr;-p_~v)=4WgLOBB!eHsyqH zPL5-FO=F6bTVc4T1>UA?C-$}qygjTg_s$ew^KAh-lx3)Puh`^UBF%2_0V8X84$|7` z1=e>uaqjRDxapntlLBu`#@0h0nBRo&5=)3FM^fTyMz2;^HsG+Aan4>M6&rk8B04l; ze;6uOs#xb+!p+Xj{~fkUBeX7SvM;QQHNGV(KRX%X;{tDm<)}K8aH|UH|J`$!yNfa3 zx{TL4vy5@Iz}rHi(z=Da9~F3ei27@WY`Cx~R`}KjE8TXvm@dBJ+k*5>%luSsg?-g> zfww6u+HQ3s*c8xPVYn{~ymgsw7PnO3?P0l5ocw0{MS-`4>9Cfe)V<jmBxR>!q=DBd-` z6{JI2hIl-_xXL#+tgOaP{V*}F@J)2QEStf%4C%_Id%3_{AeC6ovfe<?#_EFICcy#ep29F3XT8T(~7{@MZSsU<}|K&;l+|% zbJB9lJ-6C_mR7H9ZY*wD3aqvoe_D_Ej9&9^Bl)b`zcW&KN2LT!cNJ}&T9MLJsG zsRC~g%f3veGBR6saguKfvn6XM3cMwZA6PWeF7bP&^&Kzpw&d$#ea8yCODuC2b=gA9 zWpW!DKPvFH#B^wsjU>lMmSM#)q@Avvolee9cku6n+0L<}dovwXl<~vaWb~@E0_jXu ztF%vO3unZ%w!#IZLfZO%*7$W4^;vWmRq!&g^i`R!v#FatoEu8EH^-z2pQUKdQV*Y)n7B) z{=~-=-4R*Kt9RNP;Q}5>x=XN+l-nRlL)8O%9XW8G%0&An&)&r1a$7oxV)yoGF?O}i^;7KILALdtk3q*+spd6!= zzfg4-^b?N)JXwPy8%%H8qbI%7-Y6FAZ-H&Q0NUM`w&G;%96zOom;ofQOOHXF0v=6j z=PTwsOkIFW^YT@$~f4|$vAvNMX|5FJ4m%WW3V5eTfZnGIK;8n?*w=hRqTlU0;+3kT?^C_l`+yXDchud>5R+%a< z);y0@&TQHfL1wQfkTv~e%2-?W{FK=(Ky0J2=EF=WYs;Q6GrK)m^h}*8p|(Jd7zCKv zJoStCze zJ!9+^a6OGRL+utTzu8mRrhq3*Ie~6|_qNmwySrO}*hXW`=({D$Z}ybGDd5Q>t|rW{ z_7;c{S0Z*Ug7tgVXsrAPtDM=i6C})DYs*f^uy&ixZ~?DMR&t0r(%Q1KN6c;yL}#y< z5^4*)h|5@$;i7)w|HP?MV+*;z`a zfJcr9ZJ1x}Es%qd2fDdnnJ_t4=9Uemx9!v}y|WzQIJVS!nX|J3~z+dDQKMW%1S{qQ)I*myj=PM1yVxqoIb0ID{0t-vzci#9MzgJP|rCt z`(mkj0cXTAlVN(FyWt9+A(nx06V4Wjg-!`)1{YiIyjX^Gj+vFIW}IUS26=5?rBAP> z(e#eWhD#lO4&yj6_E0I6WX35r=iZrsE7d|&POg7Z8+xKm>}bm!o9KebB*gSuaB^Fn zPyg>u#OdAEhAVuAXch)G#VlRd32g)EPRwOU=}}kI937~=ko%t-x{;&bGv8NyR8jt zM$g)7Z-y|8U76G|ObzCxjyV&4_8HZ-duGX5rYHN=x0w4Aco6h^ZeSI>qevG!idog} z>0$y|e1v2*zm{8WA-Pi~oXBmJCmx#zUV)aGrlre%n(giQs;V6u+F(&8kQS9@FwvDP*#3d zCUK6~cjT@IvswhTogDXt3Sn|>v_rVnw?t9M%)T}v>VOWH!GJT6P3zAQ^- za9MVroWYf8UOC=J`lvGS_WbzXboYZYfolu?Zf|Gq===}6_&DScBEAGp)2zImxsM3= zQ5;a8Cg!0Lf9FC zo#_b-NiDl`XG36pvgOq>M3UZzsJLjC=PB9wkYugQ3`tkJbI4E8=g}LUa49OdNU)0` zus&JS5;kop(_f%i3n8&&9i8!7N1If#7VYR3!EW^gcAH>G`7|`^t@wCN z7x6Ztj^C@LcbNMX?GjUbJ9Bp_+1-$2t<3CG!hITovrnJWB<~UFUI>YT?E`Dmmmh$% z@!9FdS#dqOw>`Hw|HDgs9J1>sx1}mFo!a)?eFEN(1L_ksGq^qXfM5?oVEg3Mw&y;l zNS}v9YGG~Lb6*hdizu9CtI4TBuZWy(&n*#eDTKFQPHlT`nKCVhWRfH-Tcu>HA<0^q*_d$SD4dZbMFo!u_BaIACu>HghAn0K z>lAA}B$iY_wkz8p;6@x!%auafgkX~p*uJ^4O^UP`5~-DqeNDKpqi~w7CRc{u3FEWv zxh>*th4A*p%pm{v+%wAbEF_cH$Wu&Wn_$~LfjuYK^B7oP9l@XfmaqO@La=6tJh1?rE@=qFc~lO&k5$ z7zRW;;Q>*L@!C_4uj=4Ty;A7H;BO~9_-kQfQOb-=&09|~w1rIZ@vVVKsbH^QPbk@w zxN$kAZ{!SbMcML(q~W8@-lw=cfmp$7lvV~7hchSjXGiT{)b>+cgh8V1L)1&4608X4~DGTcdPqadXpPO&fig+7`kG5Gfc#XkluNaHd`< zbRk%>6AqT_moM95JZPsT9+X$XUcnwwvPW^_+81B8g{U6H3WoMt8CU~c9{-48?u28Q zEe-732$~VAachfV+MT*Et)s}4cGLu@Wl912lG1${H!}^^w9%grL#%x#9BXf7VhwPn zUMX~8USTIZuh7!Og4r!brsl0JPMz%3Or02rlnV9=_K=c23>g2_ z;pwkd2G#&)Bue2Q^L#t;dA=Sg6IBi8+Zu_*mUK{MGTN{GWVBy>%WSkm%treG>9^vs zJ~lw$Jk31pFu#FG4uJGu5>W3=0mHoME@x0f^2v6q;hHwkUg_yVNSyXm0Fh(>#}PSZdd!l9c?0YKALh!wrI@OPR!OOotO;p%qj^b&N? zP*0p(c=KJ(7gr_8Bh3S=wuCN>Rna`*s?u9~RCXFBuy;9?ZT(bkwlX*j8+I{v=)vG1 zg&2h>xPxJBsu^I8eV4QtxeIGFbyIuxOZ{Y9n*rw$^?s9n$r>t zcz8>92vxKk_l9;VGS(3H*kuHyda_mqhse$@V?3e$)ILQ@6Sc4^rbglN2X>k}TNG}m zG8f2NL!^zV9>E$*SVz6h72jrbk;xu0ofzTsz^Wsh){d@etYkzCZ*4QQ%N&$g9rMO< z+YDg8#0Ryo(s>*wvezucN^QH0O2UMs?cL@S0`p{QtW6`O7za{hm?sm{g2qa4blaSA zDZyfv=ClL@9^TT8wThP7TnVhQ*pR)$6rNaBa}5sDaW63^*Mq@9#%<2-DY%1SZRj6F zGeCk7vy5sC&QWTL(P6%pxkfQf7;DG_tD4C^x;IR}GX*ME$6RYelEF)48uVaoDx=Lp zJQxNingLR?n4eW+ZQ43gj02f0%+HExL1QJkHv?9+w2s4(DxeXqVGHea%w%gMjxl>I zR@GdCL(0@ksw7~Owg$!H5$O`*iPv| zi;zN_%5n=;w#CpcI*X%)O4u-YZXu~W6{J-1wPd=5WNXh@2+gZ$6LU4$Zf%WC<-7G{ zY%1d|RM{5P^`G+=5=?3#+qu1#thbPS`{>-FscLQQO#${~Zz}sOPMf3FrUurNb5kj6 zA*sA3pW@sUTvhrOU@8MHBwLFX+GkH1OG__0p3dS@*{LnbMy3S z%j$2dY`8s>x)!Q#D<5Yd{j;_hiI{A-kbEtDTqXQf5v(e?yQe0Ft)1B!K!0s4p4iiD zv*m3uG%temaoXOzk2863A*ota^0j2fg=FjCyf%HIdaqI zym9{VS$a8fccRFad(LdR>EoU*Qw^l+8Co`1Om{zLzFbJYmR>Ge)2hIcJzJdAe;&-4 zYioE4Fk~q$902kwo-=Q*KiVQxB<>bjbI+MI7m}##PPg?PlqrrJ87Ts=DnTnaB=S6G z0!~amF&?R&E3!uomAlkv;d^WY10B{r>Pf)5*KKfMswNYzl$Mgc87^ z2x2P=k@5AMxpV;vODW}`uDSN6CJlo+Q&1D)Z=gsSr~AJcr*l?z`_;EIWYf)%Oebf= zznjMz$J4b7d(&TF5wz*fJnrD$J^cO8{(iQ5_;;b@$2HG5GV;P1uHp>tljMMlS9Ze& z)_q{zx1;VLOus5B2$Oo$NA0_)GCEMjk z8NPEfAk*l32;_%xE7d}1G`+{!Kt+*d2T3KK$P1W!cm?UQEb%X%%%`)e5DmrW5mg-8z$NYOG@*2cAvW#_9x= zY!|+MxZheN7JJc7Fp)V5+W4eI>-_JQn*_Pg;&J^Ra z0(=ADf#(2v@+PoZLP@<)fvN?lfvKow3o=8R_QbOp3~i&H6Vy{Ys!;I9LS_uwV2!o> zJpt~M?w7!5Ge|&!oDy$*gsmpS3x;ZqePLsa6b|l&NSmnQrqqILC2sR45wa$bsjBwy`<^rLE36E8&7x=ajNV6CFgz=$t}zU(h;{k%ubo zqKdn0tm9r?-8X>!Ce!XBMgk!vTF}?kjrPX=m7L8;*z`Qr@_?{dWu$L>0@OL{&AAzQ z)3pzIqVMKmllaHW5O-iDZr^k!0-Jlz*P5WWM$*2U7q&P3BaT&{mSfdW_`qh=*;aAs zXi}n6y6%g~tYaxkCfkLK_Dv{ZeaJ5gZjduAHH>IhrjyAAMpRWk*vi$9mH(p==}O6( z9Zt#~O}QeKH2G{3e2uAlXedg_s%EX23*>y{cFS(+p3hx-!+Wjyd%l>FaDw8t^8f2f z->b;g()3| z$-o=s>9cWzo=M8;UB z5wR=R_$-M$-CDm?Hp6Lst-4pUBbHvS*u(Jo`Ql?&`6 z?MknD7aF;=wZzw&=~qr$_ClfIw9S^A>jwhAn->uvN4KqdV1rzh%WEsmZF!4JKZphK zq+bx1O5ZUb!o2p+09BeEWD(&kSFi0YP~pCg^gmv1;&Jx=#cw`|uP+0T;Um$rh)@ms z<>@WuafAWk-mAFPPE`7hh*U-h{_-f#HrqOObT&SIbhdF^d>0a6cz|HR z8xh7iN%0Zi&aOB8r8u_#A{>Vh$KG_so%0nZ_FsgP#qr{}Bh{P!Qk-%{z;)B)&9{o; zV`$^Vo36WazT))$i*TkmS)6pFdedKuv->Z?IoRZ>H(hb(e8qWB1hk5cH{L3W3uqP} zJA%FGFU7_E7vU4MO#4|aZ<+%yNFTxdgsk4?$ zZ+^45y8j|vE6x??-h9=qGZxqPUxXX*)o{MqM%pdRZdl2v=7z-D8_3aShn0+4+1#*_QMdq8t)sz&;KUCD?GL5k&gQ1d!dtQo1ik(G?ZvXERL zl5&RbVvh^R;8A2(2jeoF z;n84K2)PH)>JHA%s~QP0@g&S0J`YS+nXV}Pb>6A&2QB`t#>4BQLRlRbzG6HwJ9pxo=g!B1>fQGydz@n zvn8rEiu$%hh1;7Y_PY8}#U)0D5mgg#_Xs;w4~VmLUvEeZ>^kSud5&# z3T3@r89n*jA1mJkjcUyz{^~d8Ea(i_P<@)6V3m|RJt%z%%#D$e`q1D4wvmJ@-{f zYQhpr6u15*sbKr>w9wK^K57yEb(xP^l$e`%&?2Pe(-!4Y-JPaNDM(zbdwqZu5?9s$?ypty^t-Q=?$1^#q3_Q*^vQYycAT;sNQTqB=L z!v5FDEwIEoT=Whtxzz%-*if`$38iiE07vKvUdy{qo?a`B7SAS}yo)F1wK80Fj;ff_ z5?X;`xu$LLWJh6OKC=t+q4-!;0DDiP-P(ogw-visUunC1%A2$4O!SpT~*-rxs)1n7A98#+#Qe8or8u?F;PM7{*I{Aa??fL1& z`N^@x!^iM3zc5|GYVY&YU2&tPyw_s7a~S{Z`!4Kl81vyd`+=KP(S|*50Rz;ztOgzm zx_e=9pQ|K<*}bqJ!_fOEjACUUMcBtv&tC4kC9w7{8w}x%DCv!yWFK{1f9l!x0kDMa z20Ms77Nx#wJ^%W)+sSO_09e9Kqb2mL)wdAtEjQG+yn1h;LH=GG%T!=QUuGA z1Q#Z;+7n9z%NTjMoJPZ%9>F5kSqR4UD7-~6yb{4OMh>~f1sxhzm53FwPsbGz++`W~ zt6hR3R|@&k>~T$jhJ_76MZ6R3@uvLH$^dq`SQ$$u-qqf4Ykj1MeIhO=({yioN|8%g z4d#+1U3HTMnu=V;f-aY>Lv>`6}gIKRjyVKwf3+;Q;};0-qtbI zO%`Y>avh7CT(2H#?O}nYA~y=Wtz)X2EYMWsCYBhvSv}O+!val3ZWVZ2$5c02psC1h zEc9`^dZ@LB1)7T7De$(Ascy1BQ<1w^ZsTtCP`PKiEtVH#k$53dwD^?o7*2ALdsz13 zUOh@ekroPlEEagjP%wkJdu+DLwJ=#MUJ$=yp~~Vu-!ZVnGSEfwfbSX{EQFX; z=3#+%4Gz{3WQoQypBH%7;9w;_mZ&X*b?S;Q_^!ceF7vBzIUFgL_^tuM9Y9HCzAW&r z!NCe*EKyqqL*rtZ?;4zxGFYLi_=@iu9IW4zRA!~Xy9NhYnk>;+=23xn4Gu>9EKyqq zE9?}jeAnQllvx1InC}`K^zun%9v67m;GmypiP|#g#fvq*Yj9G^pdT;R`L4ma%11Ob zmO@`%Z17!!gq}L7%%s4(1_ymLOVpM@Ph33Vy9Otv4Eo|?lkYeVen~0vb%A$1NDtBVaD8m`1~lKQK86sQjxhyv4bTmlN#5SvITP#;DC z!UAH#lUgxYr1sSiIKoMq7Ht#}tm#&r7@;7SBUM8%4N{m}oty*p7dNb@cbkod@F7mo zv}&yv$28DttGPhaBFPOAR|tuVt=bo^*pR!}RHXKI#H#CmPbh$kRFT>n2WkktqpD2{ z?>EdR0HNs_1`U%IKxldvMB^hf8Vkf3YVpf-`-7>xgW$t$jx6w@M-~p899m4r7pEH+ zrkXobLT;Jy~{wv{}>EJU>;`ak_Rr=*V)sNh%z#fed0b27=jVFtE+y5-v`Zcj30L} z0?lLD8b*{8_CMZu1o(Jl_+Y$Y2uaAcGlV2c9)^&FcBVr}LWCq{o0k@FDYAe|kp(!A z%5~Wgp3oLEZ2X8A;LxH>vEJWWLx_d_lwdl>B}mtMC-q!vmzoGM_LU1tKiz1W0O?Z4 z--lz-O>F*{Iq1ch+bdd}K0$_rB6&iTv5NnQw9w%-FfcIi<7HsFz3}6$yr}uWz`(%3 zKrI8DnA91UVRw;|x2bbP!w}fZY}KZG)r73qg!I~kJl-;4xSpAW+~kBL=!9(RgtYF2 z6!V5`cB-HuDV{~j9Q}G`8g2<7PQ%>?EYffj1B*1=Q^6t)w{NgW!(AXO(s08Giu{InSgp`5>_NgSRNr^k%fd+9}?D%NLbDy zVNr~axD-bj;P@A~r!_{=^x9~;eFFbdS2Oi>V13Vk2t6tjLf#q?Zu(2)_;z_wkW`Q; zF?S)0s1a58S;Ew-nuc zVm6Srzq_UM)OILHXP=^*&jIi$J++|jmZF1*CK~mp*urE;p@G zT}wqtQNH#-Sc-JE9qZbIrC819Kv+sIEhv%JsHIrVClM-AtiQI?i_u1;^ma#Su^P~U zu$5lgP=CXfUR0C}Qr81znVqNo+^C+SV*9$wTuD6W1oW$+HVWtpo z;ZG*wGTZ%0Q~pW)jlNPez%<^HEbe*^8B!T{k=N5eY6`#9FD0r72T;?%M%`{=Q-R{W)zYD)H!3ljvHQbQXyTnMxfKb!caVKK@QrEyINt|}3sN%o++ zYW3?tV&b57aYhYuv#DNUQIH@*%1xJbt6%gG0^O}Um1Rry>lJcJBu)~Yfp1GqF}=DK z096nS7ErS;pQxBzOfSfk8vK+@)vTx|k!n`BW7VZaE{n4953w#?#FnJ$v=P*-7$*g) zSqjc#XdD+t!ibgEf(&`BZM_L;qppBuOEoK*Ns+ijS%f5Ltzt{{Ymvb=YZnO9gg>hj zAHT`9y@E`6t*(CIEg-$9JymH-^-E>}g^O54Xp*XvRl|eS&{CSZITXP}Mf7DuHFb4> zVrLg*%5HU1u%_+~XjrT=`cif!!J4`}fMKbY2x*l*PhvK8d%&#i_;5aBI9!q^ zNL$$y-O4URNs&JQ(A>aRE$f0c^@0FHKNw-om>X?ZR=24y1Ylin=t|erBLa+lVvsv! za!LyJ0*s5&2ANYG zfU0g&9|^4bUa~Zerd|>_Sig0)z3{4PwQ8EuwU4IG5{Px(r3=>7Wde+yW{@(~6DZ2o z12wRB0jsXtw2iH)+XNIkPOuhQJ(5>Gy5n@Lt*Q3}Y+e89QrFan0*otU2C4JgX;Uu> ztonYmw6>;x6gcQf!COi2baEO0EG12)QmvYzom#&KHc_CyOb(d94^jrD${(fItv@A7 zCW)0$OrCXb_H-fCR(L@RTjTOmWi?CR){lJjZA~v-(I9P3BW)C_{#>P}O+uM{y%1V& zTSO&r8`Rdt9IMb(jLFvuEXY^cGFt)0q{IHk8dzm!n+tBYC?5U%4nYp@p@HH*n%u@k z+}0=OihH-Y6mdmuD;&yaU>|-5OXtZ3o5N%cf$B0ZO|mjN_Tj1N+Lg7duMU6n@4r91 zyTjGw@PQ{G@0hLZF;LnlA0+1yMlz_(?y)b2^qw>j&{`^2m~j@Z z&x!q_%0gLrWi%PmZWB>-$DXt|N?uE2*n37j(w> znCIFVFV6pFeevCY{LLmmp5jBUoq_&s9nN?Ye^2rE0#5lR-SLajbX~Y(47+3>nCp%o zQ-<}v=x43Q>p&FoMUQ^;*Xu{{uhgv9z8n1UDpAFACnEG`S~n$qL`*T3^(6hQyFXqb zwz&FqvD=w7rTvPC;*!@zge6E`OKZRr(73vM2E9aICc1d;NrYb?u*SUi2>2xd#RFM9 zam#UdYk#~%U=d7kf!j0t1rbFI!$q8a*2Q8!C#o3vM;L8ku@8wU0y3VYo;P@OI27~8lIN5$56$2{;Y2vfli2kJ0WKOG!Xkmilb(8^cRIN;fw-R$_5Oq|86OxQ z@1FnFx4)Ut8*lMr8y|XXybV{pd-0ZX(HL;T`|ggW6E#BKZZ$%_M;R7tG(fV17E+YJ zT761H#3X&4a=M@jDxQv_H&bGhH$CEq6Y-6{)Z0x-y8ypk&CUI{I+=!d?ynCdSs2Kro5RkEQuTfX8JTeEz*9k1*^sc_d znfZ}ztJjDq<_KKG>3y5iTwA?LRPnfq{%jQv7^R$<&Ho%R#Z07IceE);Km8{cXsgo~GIEO?8_Y>%1s~25 zUrdL(_~b^svbjA&L@@{JB6jGpXkDiXizf;~Wf7N|$?V4j6wd+i5wArWa2fD|20+FBRp1>hD(;Pk`rpT0VF%bf`1_VNF9&#PMwA`aa7SAt<@EcHB z$i&r(US(W(q~gLy5tcpb#D(|jqr#-giV07*-iHrC4B`(jypmR#=R!Wh`9&&f5bVP!uWCM(fxsESe4^TZ7F_LeuWn9aA@3&anM zR+J2Ry&fgLNJKfNa>?x!5&ndza{L$O*0=viDb}lu2rm$FAwMFFv6~eT=G@$S)2Hvx z{-~WVzCcOUn6$lf>GBj%WF{D>qL~7wGLO6m@rP^`A(<2mOyS0`Uaupb$FOuA23o% zAQJE<0Ry3eGSS9z8JW)b7J&o74PB`;TGhyivfd`748S-%b&Ck!A*u`)g~@7RuXl-g zmsNEKPL?|m%$Bo5`9>>Zhk=NkW>;>c49m!@2yV)tq06l62?9(w#l5q`8HmWOjB)ls zZW#|2QRc%E z_n`z468@Z+fe8s2ys!sx`NsVPu>BlH`jW76iYiQOjyERY zG64g#Xw{33OmF-Zfdlh??I~R$qMVv^DeV*yeneC`of>8|;DW*hWz9(HDlr3-zSZlE zd{Z40J1|+@p4Z1jlvC<1uTDfb`;udguyX!C!k0G^iIfr*BdhBKT<2HU`Bfc2rm1ca zc%ur;J>r$^RVPH0Ng^(#ruEBVhDU)@Se?E6A8z#tVP!^3n5-7Ix=GAH-c1=3F5_$X zPmqvruU`{CkUFGmmrd>#5oLmt!&iqci{|x|ureDfOm41geMZ1Q!kF{|(?2X@!fhjE z+k_7!y0s_vIT2+po=a@kpzscXcPLmSXqijx3j)3nfUcx6D7-6!!n+q*k9J@31c4My zhg`4mMyy60LIc|+W+3IYdr5`28jhPk&x^jzj8j&TyHRSwreDSr}4>#pSRY9q1G& z9#V&g)M12K7OHlohJ|?vDQu+&IdxbCgHSt)I^+(QL=3sZj5ZFr!+V&J8FGgY?H&3+ zg^7F19sWhT?1&+E7%s}28|`69i6M7*$Q>SXhkvZO!~dk6FCKD-c~#&!;~{sLq}Z>F zDRhQfhuq=)%pJz;K+7bcA$j=lkUXr{M{|O5wl~1`kUR`GHzW@;#4sceI}K$>9(G(s z#>j!;%OQDqACiZkUgJGS)2G*mw2r(?1$uGIuq~mOePOc zq|r{U56Q#Q;U*?WsrjNZdHDZ18C_|(VMU4Q4)V777B`Y(S=sB;l}k{@(zV6e3jV~Z zXL+ki{QfUCJf%HSABozKs@vO3Ngys!TP*mq533EsEY`%G&b~)=21}~?<^N>ijjuGU zXwAGEscxNNV*;XLDL30Dh`!^FykYMj%%i=J$V(Ro?NpP>97Pxkq?fkh=vZGhN1#4{e-mze@;HQB8JuwR*Uzv z_Oi=F?rZ&E+Q63t^g;oU?j;t6DX)m9OBfxrGub7A2kw3*t1W%)7lf2|Xgl7McPEMk zd|LY2&xzaPGQ#BcAu$8Dy(@RXF~{_aOMA2Ba@duB`{x6mB5>Efuv_zyYPk0a7g|PG zc?7syqd3n)I{Gl@7F%$+i^Oidl5pvimE8zXa{L)l#gYxK+r|BGD5IEGW88-zn&aFS zW88Z@QE$ryQ}j=X7+Nk^kzI0_NAq2xhL;QO;(qTCHn2WPclUdn$bqF*%GxW>gRiMp ze2a*o^@2OQ-jtej}2qkV0;H18m@JwV{~ehc79eQf-F?wxktRRxfKiDMHUb? zYyM@e6@%_fEYBBSK)8#a6)Op{>++*#Wu_T^5Cr586~xkqf%OChsr<+$RxHmLT0OY4 zpA{=gc3eQ%m@OTxSoAWml%yKuPIy(e)y`zaTAhLQFG;GDBAZ%~6c|bZe&`KziR^jD zhH;o!2eq#ygh{PftTnLssTdl-A&6n_n&lDlZC9)^8(6!Q42xHQhN>e|g{2?+h+aIj zh_JF=akV>34J$EO+L5gJg$wg~*HCn9cM=d}j|!IT8P^AaY+T1XI+T1oVOf2$!)M1KyO4N-u zuuQI95ku<$D@UN+ZRRz@8i6A#0hj(Q(_Yt!xL&QiVs_J9F=U1fHi*1YMQ%^)govTF zfEBHzK+xck;0)9B`Q-+Bf+xfcF9zJj!)_8bv>tHzyk4AN43P3;WM31xx0Qg|z_y6E zMMm5%hr`WpnXor&_ckz zlg%G@?GU=JrGQE73j)3f*Z^;~g#J4XXkQY%$7O&i@GdbU%K*#Jj0zuQvPh3;eP!}Hv>OMVh=kh*9Pt@O#>Oc787etl14G*~j zDh(HuppyB zsVP!QRE&U62^jF19kUv?20=}15}1O1O+?ubxrE}8^eqX6nQjtQ_M2g* zTA1k*Vg`D5nbIIwXlbSsA_qn!0+S!vtZood4xL<9J2n1wqRN3@m{s4IL`sQzQTb~G z6k}00p1=Y=t(k*{$An%dP{gHWb2=tsBv-e+rLGb+oU2RWrS3Bu|07}suAI6%)D=9ymaNjUmI>QemM#ImB%pVtFK*#M;H#rkT_SWKHqoBcFNhdQ z(e30^KPPIB3A&{9Au$6%DZlmS_x%ru90;UoR^>*jo!%#0Brn&p(?GxCIAHJW=&BY8 z+&wAR0F&0w2pY-B#U+!^Zl-U&NA%tjaVhVoM3lj5hpuje)w@IuC*n%F0@`ZovhENw zFayxtx85dlVB$h+HoM2VMMOEh;SBWYoF2mN>!c1{78=PMCTYkP@y-ei5l(1$to7GE1jAY(guGJr0Iwq~p zE;ry;7l<0kyOo79M^&E?@DdL-BT9r{ULp0uXEoEGUL^8@i_CBOl}+gdB1RH!+f#a; zsNsZLDQXKtJx9zy_DXkudX~t6q?`7vo*`l++qNaEbbqG_+cDKvSBiii6VS`H!sCcU zDE2mjhVmtiDlbZPipYWVFol`#Qcn^wlxFL?)PQ9*wEq(X?kmZbtR5#|ATQ8w{P`~R z7?A_Hj1H@r-s&S_hH`7&2tX#U>OCK|$*LPObfw6* z3Et|i;Q9<*$bFa453;#V$zxnBCkt2@;r83 z8n5WozasP`o9V_}Udi+$qHp??G}v{0J}>B4CF&Ms&h*%|S-n!?$Haan_{jIz^@+WZ ze4XfGhBkf7*O=Zb1>Yd_ivTGNY}aS_Lgps~-VFdZS#~VX7xK#6Dx~0F6aST9JTu}^ zpX3YCw=8I!EOnHflIjceX97LbxN8!AB^}#Z=1k*m%K3%FI~u#i9c}fQzd(O!&{36S zwj1+*B`>?#Y}0AirvOhU?*vhsEW0TWSmCxY>bhiLw3||5iJZZ5V?r>n6nLgd*XIN) z&=wA)HZjc_HTY-M#j=VyURA&MvT5EEgiXke)GN9DnzcF+2d~&&kB+Cr}jghSNy|w$b(Jz2lFbP7v)IV z>~pt@7lmC3_eb%q*eyhwsrQpwd-ph=AI$j-_|9L#>Fv!{Mz5wzN0yE(&L5f_S(yKU z&TenEefDol0Q|_plXoEN;&l98xx4wl+3M)k9*+KQ{;%hMu!>7SYe)0uYz!zN;u1x4 z4w&v*{?Yj*{Dl>!SOTuQWT@nHf;#$wVJBGI{iz`iU&0bq_lo+)DqJmIyQfs}gbJ=! zH=8{wb+208S`k7&vWiLz!tSg>(n1V#)=%}DO1FKO94p$F$bJ-X~HT$zVQU~?+VReI}t2eEhUk{d}E7JzV zjYfa`!QSBRgyy7YuTf(4r@`G-IjP%IW>#VF@pCc0TSh-Sw#Ik3^qp;<{q4rw??#KW z&AIjMx$j5i)$aDO^}}=9$NqMNabDX&pBP<@tG-YG*2!J@O$>s@9JcslD-NtO2Yp}x z*XljYhGv>!43a=;KznY1%Q9THg)~`cU0$_R1c(yI36bm0H;L zxod55rEV+TZ#%{AMKq92ni%x;W^z<$|0X9C8>w)Ujd{O|9&UW3FO#EEG3aY+av1W- zt6Yx$(EXCWW!e0N;Z2{Noo=30LB417fxq6I8!fKUE&k@&e|YyFfAj2b-~C4%gKD_GdSN~O9M=!G_SINjWO3_x9j|e!=54MnuesB|YT=v`YW*0vwu0(`{K5jix zfnQ6#ZwCAzs+-MT=?A-ug(||dL>)JM?pm8%soRPlY^T`0hz7Dr6IVyQnH(E(|0X9C z8>w)>tm<~Lxk9&nnH-f0KiJmf%CO(fkL3IXJQ*LmH+gsR?)Qh^o&F(5h`(ML9sUC` zAu`)K`?s@=v%eM96LG-0iUxoC^(w(SzJ5LK3?eJlRgUhJ>7gonrG`3HX3&dE-=G(d z58(vdec9jG=-$mf$~k~`+7SZn1^%NWNDozk9NjC^Lsg{z=*maus>p$O5A_*T|iLx&jbb~LfUPF+gDNB2he_Sh*#B7gFM7$kPIv%$5ycGiQH$&tuD>ZJ^rT>MB> z4W=Tpq<+05#{qV7RLcO#a_136Kklupk*mSXZ@=zdnSR<(_saB8l|e7Q`KV^&@6Y)D zcIjoXQ%ChZDEIC0A7y|o`#$7>HM(bT6_V&izL6%1w9p#Wc&GP7pz%i*Xu@>5}e`U1UQ6QXP zb@a3=$Z~fG8tisgIaWu{yF$=lUvvdo8SQq3pkBV|3W5}dt`O8qXAmT2beE%t%Jfhb z>ZNmKx>ThMll*@l&9*-Hes8w%!SB$9kxzo#+EzwKXDdgJiZmoEqeRxaUC;zMHTtI7 z)ecsT9K{oRD@Q&ucS4O@H#5{z=OC|iXz{4qX(aeisvm@-T^&7ZX{M;2zPEQg+G>d+ zRCpdLJY_P;+PipEPv0NBI-0bXX*^nh>Q30IYug_~b(dA2wlaF$UZ&O2RiV1$T6JxQ zDo~xiO?lj5%!I1lgh(p2v;9~Sdeiqgua1`5b2J{^g)Ln)GL2gg)loTpuk_03L3^22 zM)x7p!pf1;#+=$;4uLAMzBx^5b@W+#v2Xr!6A21%>Xo({H(-``@Zft60bgd;Cs;3t}SRGwyhav~m zsNM$jci!04cyy^9AbZg#)Er+cqfc6*2wD+-gQ5RZ*p?Z4RiSg)MOBA8KZO28O zX$b|@?MQ~$?mljb0)fV(mzF@|(aDxjP}(<2pq0__d=zH9a3odUx`iRr3^&nAGw+rS zGhH1i$=d!u9gp@VM=lxbZU;17=`IN>^WFReo>GpOS_*>tbbO&MP|%X`L+$W-Q_j@` zq?~gHKsi>c-cQZIMjm&zksg|ju-5g-k(-^(q%UuBi;Iq2=w>NB5L5b-j)L^%PqsSS zN=NlzID-Tk>F@7$ww3<$^GP>D=|w*W$EECcHj~zxDWgCC>qp|YA$&}?Kd_b);^HK@ z0_~nGgApF?e(LtZ=n;oH!;y=>h*6#}qDpy(R7$ftV&NhcDyWo5 z+A(M-NK;=L>g;X$(oY|z(nkZ5R@+B&?$xz)Zqa>kGdLH&E$X<;&;$6?h&T*8ql4l9 z_t(ELk>-Q%Ig2I6EY8X~+Shc;w&`W~z@dy-t)sKQ5x13BZ6arns8RbBI@GCp=_*kj ztSi&mnEUX;T1Ool*4w9{?#`ws{q$ifUDN|lvi8C6rq9Hp(|UQDO}#o*=Zu_QoDGK) zVik+(vNNjfrv1-FSkg+yOO?*XUo0hlK=_wlhQo9=T!N%y1MkC_wT?Q<@)|XS)sAZx zhz_f%+}oG7s*Z=tLh}zN!m`Hx($Mun^`y6u32|j;{zVYN(m%CSu;bq14R#%#&=DK=hs!bYFSGH-9s&d^t zv(Q^FrbM;%WJ*GFeV7sh(0!Paux(Mf&ZgA2PwH$+gI7xE0z}j8Y)Ud*RO^^9TDUOV z#^2<<3$xvy9OYk)d?>zv;tMFgfTAb(r;C>zPStJUs4F5XB#&=xzR)QtZgW4iU#K;kYFnw}fNv@y{Gr*+TIZ6kkE{6%>8I zKV68d#oQ$h9OJ+-4jkhko~!PmDJZ^<;_E2Bj-p@jPoJmk27}HN2R^}pPjKK99K>^t z&4HCI6yHMeEfn8E(GC9TLc-Rfv^~dh&vD#y9P>5*^l{Y~9Sk7b4u|T7)?K1^>)X4O`R>9P0l}n-z}&2s-KM?oaT~ zKPLKJFkC)Xq-!rE29TjgJczYuC2_gparV2P$2&;n>bR)KNUmILXp!fMWI~CyWIxKr zlPu?Jsm-cy21trnei>SAoPED^gQUXO2A^Of4$MRoL(H(THOS%pEPQ5fl`ORxGc)hp zbziB=-b_q5Hc`o73_g?l(wPO#tgcG_Z`zYpm&*5x)_=FXSl25TTm<)GR&UC4)idM# zDoj1%wVZ-=UohO1X;$dY;uckh;QdzTw7jCVU*paSoqpS3UW3!B70CM$^$c4U#A_SY zYj9qk1hrpLQ)o2gxFBEK_+Fh8tCdFnSjPDNyA$DzE!zP7v@I3l!)Q$e_%K>K3OAQ< zQc*+%aluE}#{mpWQzwIo=jc>BQa+he4vn;k$1+gG+}#JDY(gblYHp=Q8l5ZsXlA#5CskW-dKWVAly>V(?_vg?obaqM zy-za0RJ*9@lR@7?24bTRyp#bJ@qv!%UCzK$?Lt&H;{C2<;KjV35)j;7&45esde<`W zly>V(?|KGaqu0BU3}({RlqU#YW6-zUOa?6zz3O`4TNz*}j_-B`UW((plYy7u`0i%F zr8vG%Gw@Oz-@OdHM#uMA0vLjG(eyXV39{JP-{OfO_6xSSm~aYph;%lwR4str&j6F2 zP$a~KuX};_AOlY%s;K9aMLgld3_NLzp{I69Iw0QX8F11Q);z5Xcwc1T$){okAK9hl zTgt#wwiwPAf^c7EfXRjuc~+bjZ#e@|X*W9l`zixWs5bVfIEshru4LdzHyC_coUZJn z3_PjZTGLz2fRn1NH@$HNp3-jMX>q!`k2COOidiff6}nhU0)vMOB<6*m8zJ#F0{Wq+_&dKx_7f|-h;vrVi7C6bolx-&X@GdRqlT1wM6+_SP(vX{( zkg}Jqd43o4^K~O83ccc==9je(Kgvr>%1ODp*)kMFiAVfXu*yw_AL)gXcks8UN{9bP ziEI4RzmkF26Xj$f6hDJMYi3v`-sq^MX1?;sJr$#OWO!Mkq*XLMkFDwNH=svsX2-G zNmvJ_R>G#7f>pfQQ#X?ypZ;7tvy<`1c;ex&xA2rs@yufJ1Y=Cb9mc;cKDl^HJh^z~ zh=>NZcxI=Vj42Zxt(qf|%lekI$yj$Vk1+S)i6WvO%t>q`RU|7B=@gvQ{HdV~Uy|yH zLab^mQ6d$iEXS~ZFh!Ad&1O!{D+g!xbL3($zf^!ft1nexSWAX2wd(s+iI4W@=Pvq_$bC39Ch2134trK{j*U(ij=_xlqb4n?Nv= zQCdeEYXfaKxDRVnZmrs?+HeM;0!~uaGfSUn1+T%{-cH9h{X^%$*n@jx+sLvu6lOF1 zJ#=q>J@+2|vA*@qRhIKf5xrKm)+H#%5H&9s5-x97xIB5ME$Iwo3vwXHyurEkEk2c9 z4ElaE;iK6nd^GzK&)C)<1``M+WKAuqKXLdYLZm&p#Bw6OGSm>2t)9MS51nFY{tr7r zTbI$EsBbvnS|gADlT>vYU*8C3~sH~Vmi9D=_`3%f$p|G(U8rcU0?e9>f5yIit>+vvei)Ee($Cj zfm@1ZOGn8vKa|nD|4l~ord#uS(|hwd0X>fSoNykn+m7=3z3O#+7Y9-L0RX1{HCtqM zxaMuX{HRh``oZcLyIQn%&v3Pyd$l{gH4jEPRHI8Sa z2aq|;>({we+t%RTYJ3S>M1KKfwuJWg!Han__O!eUlgkMWZZ6NwO`nOD`r~tRai?Bm z`sOEC+s`jdw?z-}b1Y^h2pj@=Vw^Vw@)(H7A0tawSPeQDt4rFF5ucueE5EN7yN!&g zYd_I|-~LP8k`K1i*nPo`l!*e2E5>@i36Wfhecdh2YJZYxPr+Q-xo<^Cip8qq+u$#F4hRoU() z#}?ba$#D(Zp5|#w-S%a2Vx`vDO~J0#Lf_caqT49PcolzV9U|NR;OZ<&tj)pIS!5(^ zPJh9!_7%HY{Ev9v;PM1(S-q?rs>qw42d9@{b!8FZ^z4|PxYuQDjq|wFAMOJdw_nUQ z=hj7Dp3K$T=4}|;;x>$N%Zviq6IX8##%;Ojl~6-{F&v8AADrD6bAj#f&A~acO<&5Z zkodj9)9nrkdZNa4_ob$jSaW+YE1b<=*&B!NP0SIC1Hj0Q!BP`#I^t5hl>uOm*~v-> z3y$0>n@yS+00wUh&M~@@UD1?7_XKw{Iic7{g){WZqN1k@-jUwQj?1XY7Rdxkw{3b4*`ZK%IBepfWG936nAD7oC$T^_joBl#f{;rLtYw|WT zIT{qV>h91dPUsHh&K(XBcf=5Jt))|(ZeV7lJd?#Ac3IyVHdX7HPDXocp@(ARTIO_3 z2o=D}kxLC+_fW^_4#-^d9*u#W?cE_OD{Je+Hn3Iw8P!F-cB;&=w%Oc4p$H9j7ivPG zgbH?i-dY=*)N5s2m}6{`KANqNty<4)!k|c1Q_l;wkPE8p-_)qmNNuauRJ#XO+oP#L zoxPZvu>YP-t-D`SQ4d5d`!lv)JX@*a!LQZYy7Qw5#q5cIfxP^XEum+ldwczx=}doY z9xm?B9RrJfkqfa*Hxa2SZ_pL@&pFEy$kCj8bMAy=yNMXvwZ5T<=Ggh>T$v1u>d_5~ zxwszEo2@%0JKdhEhn}#?-e==j;hrYr`n_pV_PgEl`Y;%9PfWQ4wLh4 z;egAtC)dhQ-iBIrZ_|YGoY`LH8@7lui?CTwv%L(kM5duydBe`rZhEel(X!s>-B{gN zebcN!m*V)Kw^=u;6#Z}Kd0vJJY)jPA!qD1g7l@%=M{|>Mu$Fxp8{e-dDevGAL%qStrSOKnlG&ttGMM+rVxATY!@21K1s>|bx5!#y zO5Zb1+HNwMw<)4|ZPQmociSzAz=ZPPPa{+6+1& zx)fIe>@9+uHhZZBj5^ zOZ0DTsBEmZS}AE82g$L?0g8@A9Z>J4=bjFhe`Cbm1ho&Wk5gHL2g%Eok-W7NfsDM_ z8ZzbcQ}Sl=Ss;tE@q6Z3I87~bw!zHIp0e_0lhHTfw7l8wsc)J@aefB}-}I0xrL7b7 z+>KAK&vt*h3;Ou?8R*;PcSoF>FQ_!i_LDP(TEC1ZO@YLhHG))sLZxv)4;gx>;|s`D zlfnY#_}rX(VDCj$kjNfX_eE#plh~;0PD}~lZ6_i@csHuM(}VGq;Hc&ETGM+D;`sL| z$a@acdmfgmx)+s3*`7>qGTN>+z3uAxYxbbhIG_*HTN^!VG`(kF?=IMTRwI%76R3OE z)%0|n5BBmjrUn?Fc>t9wL--q*d)lM%ZH%^Rjc*Io@$U}k+k)|Jg{7+QMWs=;C*xZi zeO+sO4bN)xq=RyCKzrlEppbWvmoY!y$vYWsHX7k3SiB7uH$7?MU!m&Fu0~j*qsmWW z%76(zi3<_<1=W4hg9)0>cWpGOHNpv~_Ej)wx66U)O#FHx&n>kh!El3 zs5A~}zu1OGMIBdF;#+uq7cjSqzw2OcRUg*0f$FYO&6VI_M&4C<4pj9~ObOskKj^bb zB=I|{`$(H#=fo@2a;4VvRzMv8u7Nx}`SPbLNkXC!Dvh!|ncigdRjuiLl`55_a6G~R z?M;s%LY46c0+$=DZy5w$1%b=SVuHQpuGVLI!O7^$m?mIjj)U(Zk&*TY->?xAY%>ABWBTqoRmPYyokRAFx~J- zYpb@Pd9iEmjE*N`WdB(#cL}EYnRVXgO>ps954l=8F%UJq7f;uMY2E{Q{QCq1-sAUX z8D$An8)f^+*+Q*9g#|>Cwm{;isZxn@s5B1fAwv*#yz5w|C5B8b0dsfpcM1|J(=vP!4 zWqUHcjnS=I)4LTFBlH6*jRX2Hz47Q~qv_p*>756AH$$QX_kp^bT}{tK6E{XTVrqc# z-3Uq$+X?1w^k{r*qwBTCcOBI6?;Pm64&%EXlgrFa+SLe4JXHBgOc^l2EB0v{w^7|IolQ^KWgN7(3tba$bXFk@^pjXN3JmmqZFHvA^v=`>QvC^)#sOVTkKshj^sSCgH(K9m5O@Lvp03Ig*#q`Y z_ho%+qmN^Hfc1SGks!Pq)&00f>l=?w)mq;v(QGI090z%)V13CC;zTP!*`BO#b#$`U z`c8(qitL4IaX@?PlOr3IfryHpXtci*pz#y&V}icPJ0F3koV@7^ zs*MBM+hG|=+&Mn`#f349(pe->XDO6H#4X%c>@N|BY-}zfx0W}m6-QNO_i~m)Q)XG_ z0oak~+1lJItaX!~4yj32*&a3;>&_~szVysb*E9g@gn?8Cie;5Z+ze$pD7tbgsZZyp z+q4!-RMA}su!~@*jB8%GYSc9haIb&M*nmI+$u_M{6|Cl%h$>>qN!aT+w>buC*;XS#0Z_1+lOU#t zkn#KjWmBpD2eJ()R_fuVTqxN<5k`Gxzx-r_)?$e&y19O~VDN7%x&F;h^vl+yVk1Dm z`sx2???0fVsJ8cixI(9yo*4#)oFpSCpdbpE6)}L}nibTmU{+Mj86)QGHDJy;>orHr z@tSkQi~$KV9jfa8+51#gcMk&&==)v1YyGOI>gw*Q^PIi+v%@)6JuJ;D3f7h?YPFE9 z%cA@i_@yGQw+wb{LBwS?rB}W&s$vnwYhW@`%&VNoY3+L31t<}6ZS_xhOA2X0OzBwZgw`Ilbl*Qx7-BBn?|2oo zxroc$FO^YQ7YkF?v)2E5H@bQemW8HV`j-Bt=PqK`S|rxNR+K+J>UpbQTVR+9xp8(A ziFIo%ZLIshq8UHIUE1aUmo(Gx!_RJ)VFcPdl7$>={SSW2rrBE1e&hg4t1YtN;$zv; z{q9$wTi_Ww+c?V)ZI^awLC9r}7>hhX9H|RuTDo86suX{PV$^T_q<$;?J-*liiw$XG zm!%$ATvTiQuX|&QwP1?)yQMg2iD_kqXzfpYwG`=7%Iqz0E{tvKEsLlAjWK*lv|D#6 z6c?WQmuR{uElIFwDvC zWtVnoeph~(`=v5g{%?_GJ!}2XY9j#_VOeO(rElpkKNb;osU?1uiMVvX(v>z_V3-Oy zHaliI6O>C`-2Y$EjNisC?ef=YMls7naLr>|+z;44>Td~VA|PXU@=~t^dVs>Hl8-KZ3$;nmuVNx!u2_6XkYYV)|0m6k1DIS#$>n9O6!DO$F*Cj${EL>PVO^v zO&)L?Cx1?PUHOkQP8y?s{yV&K$w}kn`jhJyb|E3<|&KQ>+e_CctcDYhFPa3*x&5p?q z$ygOFErVi6kI4@D>uQEU>xrhjFJ*^LUc{BgWS1Aonm4rQiOsaO$O#y2?Qzmr$=A#! zi=5f4rRj^FP$618K3nv>xTPqbhNoOwckdGZjmfTAckh_&0O41+%E;re zDgUa~O^(U-71RIIdpah&YTdo#q_3C$^K~kw@A41t=9ugV@ufZzG+XTJ%#8?_<&@&M z)vRiE-4fomuE{ak;UaqF=SHNgkRM0?^xkx<`%6 z4mII)aY~&zwi#7hr-4N^w}ekx-J}-pW3rth123UXzG`)|OKzt8+txKXCcB~p)Sj&{ z|JabNt!ucvD}Q?2>Lw+m{?k=T#XMNX6u5uK#n&e@$CZ<{bqb&^{!>+QLhBl%o6G-M zH5#L}uF1c(f7503vSb~`-IJ=hmDT8y``G$%0qPqdrShNDpsjE4Z|m5&Y=3c+4vXiW za6~NHs&T>J)i3PXRqXjs>lcRXBel;z&X79i(*7T2MYPpR${NbWe_+>^`?G-d_tO3V zeB;kTGPLg`v~T!xLuzY(65*GOr{cAy8O+#S(o<_l-&_-Gpw$bZ8Zf6>yKb=kPGGn-v&Pip9EhAUj`oqZ*lZo z@M`b^`)7iugZqO=gL{L!gIj{Tf~$f%g0q5~g3E%(g1Odgr^$WQJ>G3_Hwn6X{R{i& zE^B(Q(P`|zaOMJU{%!L|&R=bQxA`l~A3y)f`9ICydBJB3j$Amf@$<&pn@-7%&G#<+ zUU<8Bw|AbuQ?R|YqCMCC#kt9ykytm`HT6R3X)lOu70BW zn(C?5cJ*CV{i`m`q%+&6A5Q(ATrGKG;&In=hC3(Qw_&A0!P)*BUQnD=Jik!PZ;-z{ zm&r|Qn$tL~v99r&g*z?mvvBr;j~0Bm;O7Ok3pZSN$->zSw{3i(anq*vn*NSk&%^*@$~TG^zig;sS&B0lRcA1B>r$Wb?4vm8vyEZm7c4!>jI35Y^ zY@FA)R@2o@bDIvxJ(t@me}8^>;fBI0#XF0`ynDR${HOeJ!8^f5*00uNdx5>L)8rfl z(~e5aPVAMOo!lt(P^xeG(DW;5H!~@7T;~4FtjznF_vroYnM*R0GyOB~rO!>TlzuHW zIh9DAm~5LoBhfx_j$7x>aPs!ScHY|7dL>vtxWymlKje+@ZYge3e66r);n)1J`9Apv zb4TU6=3Z~QwP~BC5lunkoW|E1pKpAx@zuuf8@W2BtelnKDgRu) zbK%m$dxaf~Hx~zaCwOQ3j|9I3)z)u80aoUNwpJf&hV_Sii!<0g!VTQb60;IrlQWXv zBuA!BPkoB^w@qJ@eklEIx+z_o$!0oboXqU>o9P?Vhoo0a*QK9L?UfpqdOmqVa$xeg z#Kgn`_X4+@`;xPx^Qk@EPS_V%1FT1bvB78luKoh=7%%NzUmRZiv~WV9OW~>f{`ubd zS953Nw#@a){n9iGouAY+qiMIMgIF(Zx{yykX-ehR&mEAvJ@-p)Wo-9Ye!0T-g;|AE zanIsI#ZKM<-mBgK|71AyaPWPQwu(U)YY(f+KG*)q-om-uX>>Mo??JAqi7OM?4|=c*U(RA_XlS`r@Ql-y{FyDe$JX~)mzU7TLo>f)-Ha*yUE+Z`?dIBapPi5@!G;3 zg}TBU`SbG|=iBFh$laYgAvY;EGB+ZZ&LwldH5HrwXzG%y&5g}X$Q_%zHur8WlOKwW z@64wP{R!j<_DWtS6W|NYuYpH5A7b# zfzDk{2X{;NKkjUIXkx#_e-pnZh9wV3-kN+bS(6%_+BtPp>O6S)T%5R57E-ZM4QA5?pf|o_c!M{X9uUsdDcD#w<=ay8YmU{^-r2swe%kw-3_6SN^sB z?*4LqllQQ9nzymn(|ZjL98=t&*rE7+;jO~?h5ZVf7X}pC6+X{@o_{ufOa9{gDf!d$ zN9On7b)WnhtQTPS$Mf&y=jGcK`WCh*99X!h@JL~Hp#i<_SG=P5RB=JEpSPDc!+Xq| z>kam|^w03`@e@IBtZ`lNeBcGct?jHktmmxu_S*K|_6_#Ob~|Sc=M?86=L4s`I~-}w zao==*ce^LHM>qdTyqNeU;U@+rS4TUOlY1vmN*ez1}^J_SPig zf9t&H+~6GSjCY1PMIzQs_R;nfd#K$O9o}jEhe)9PAXV5cCW__3wjk z`}h<5?tY{9Kkr^|I=mR=b@066tHnEtR}~LK3u_kJ7c<4Vg;&t&eT8cZXA}-899NiB zm|WP7{Z@so*|ulfyD+UVwJ@V_Ug3_y1DyR?VSXV|>{DE)xLtAY;t9pai!T>v7u$I4 zynlOpdS`jpdY^i~d%gXY{3-rP_~k49FTNWL5B?n-jCVd8{1iCWO4h%u{j6K9$E=U7 zc6K{^GyLXU`wk-2A9g2a6fxxxeClrJ6DQ+li8GVjiS7*dN;LDP`?2dLn%w@06%s2a z{*~Ae%}q)ijIO68PDvcg>tTsQ6Z)-6sc9!KoF zs`y0lo#IbLzu4JZ!`sT6>K*Le=skjUE%1l<8{;{L`j?~a_x&cn13cI)m=+ut+=l0W z78C>9>T9h`Hagh4i0JgX^^;Y!R31McJQvshuaJJ>g|kulfh`{2%=Xk^BsQKYveuLw^;& z-VewN&v;LJx553X)BtOEW4wM|J@x3<#m|c`6rU_!Ph2^>cyRG(a_Dx&EsNt-+bb7` z6h{^Z6-Tg*(&OR9m5Lh`*DLN&+^M)r@sQ$)Ty<9Qw&DZDcZ+Ype7~3{?hXWDTklZs zMDGIcDr(lxygA-)-tzux{y2XxBFm}%{r}G3aFt zvevUUv5vQn!Y^*Jz9ZgvRtI|}dsBNy>ZD`sTkX4uJKx*$?6yuE7jDLp^XI zpP%HO?@s6J$?o3nws^;yZf|!Gu{-5{<9zMB4rO<@RmQY)l2qu z`0c6oM0;amQa?Lq`PM7=&8<|7Ct5pOW2{xFe_ZS1;9W*BR|OXY`v-dk8w4ZqAv?(X zANVi%kN7jt&JpCRP5cplU%!k0hxe=Zj`uvd{T{OA(P(v7Z#_I~7;6V?m?!uDT>PT= zOK}$KOKeXR@4-XNb}kX_rs98!cNZ@&-c`JT_;e5P{;}e7c;tu0xADvc#X>PC)_Og> z-rh>yI<&kwo;%Gu)4SBW!+RXoyzKqx<-9DtS%n&VD}SPYynl*+G5Pcv{~iBZKkp}l zuECnYI>Dr1kKp*=Tw=rhSn@L}XPbJtzctp{%KA5>&2y|PtoyBJtdH=xKd|R=_Nw+8 z_ICDR_CfaP_RYk+*X>uZ>F>7Xv~@<3RmM6yJKHIhQ*3IS)HeJ8wE4IzKwT zQ*;8St6NQ8?ct7gSHeykVyy|RTQa7Z=i?WqohP0D!kcrPvzN)FM z>qYBcBsveC9%k)^SFUMwvlP%g+S|a}i2T*d zTgB_{wS@rJ9fs($41O zsolIi7-<~iT|#`g(tE&r&70+Y?tP2Ri(W^61-}P9TNk@eBa5C!oWB9zebs;3|At7D z3aW#F!C-uNe6TClKRUQ5xH`BpxG(rHcq#aUQBywXZmmcqycQm?BN^lv>k{iaDu{=O zX5UypSoOAT4~rih$kcnCHNmPRy_#^#+ zcw(d1$uCk_yyyMkJ&T844^yszD;H8Jp5^UFl-L)xOv0OYqQaiwt>%rz;$yruy+PQ0 zq}SD3nanKNd6+lYTb^}Q_|(f=i|iq_PDC-#V|Hf1Sll&9u@mci!78pK@T$H0iu!Ew%T+j)otQ%~^*km$X znMTY%o0**d29Gnx^GfhbFfXvIIy`8IHH&wTi69fP#NqZS*yILs!(;Zt_S^P5_Sg0=_Ch=B)H=P0(!-oFWQs{JXd7&M z3=#ZjqRMf^mH#-`I@ddQ!hlEEKhOG>^D^tx&S%7$=h@zM-XrqA&1auDukgvs>>q-2 z_c`~&nX8?dv~oF7N_cY+qxoHkTpK#0ouM$NkK<8I*v=>R=k`bTllCl_eH}f$fa+>5 z```8idn;t_c7LenyTt)Mo|xXw|MsvA!f3kLv}dBJKH;z zG3QaDn3PITIx=yafUfpxicwRJ6V{aG0Ine`r|tieSMOs)ehz&-mi1(NOM6!$*P2AG(RNSd zDq3yrMx^~7?#;5EwC=NRVO)ATvls`H+jgMN21&;(T25(X~ea2kl zLh9fe<{hihb!T+GGAtcwZ9|Q*wY4u?JrTQ{X&q->W?f7!eTaPXg!Pv7F4^Z-s;ha- z4%gWAw$xaI$xUOh^rozP5^wfl)Oxq=t z(Bq33>mNbH+}hrrd6Nz8wTPL6?aoBa1njN0g}a|IntKbsy-Q=~OzT4H1nV@$OZ%X? zUEuEqtShp1;ci16w>$!7$hvdGBF(*re6WDK4WE*mpTQ0~zMYll?u2 zW_yq&H)37cUyH1{vOj>DuQOX4;%?eckk{uE1@qoK>h3SSM(-1N___Cy_Y(W(iI8u? z^^d$)SYLptFMIFu&70o)-g89icc>b_Wcz@te#9?+f z?fqJRc{nYz6RW`MHT?1P?BA?YsPzu_5An~2)#oF_HOTT1(e^Ro?R)s`Y-+y+NStAw zDj5t2ItMH3x)Gkfd9Wj+xm|<9g9C$ef)ml-#oVL0ICuzlKg0O@RU*a5ihPTYHiBPNcRz9gd$x1#pXXBNf1-)=R8!Ve1dAAFW@g zxdLmU)zQun$CiihD-xeqp(fji7`GKsZWpS`BN$`sPhEK?+a>l)*4tPgWqsa$0;avo z$m1ho<(F)8h}?7SqMasZ*Ew0Iz0(G6);j~8E>1u0lnilJfUzUkkHjBF!sAt8@d~hc zw6hZY9>hH2AdUyHb?3Z(eAkxhwGX5Ep41^(+Omkyjd+-6e?yfbqsI@~o~3em#J-kD zeU5!1k@`d`1j#Ww+1uD#Ak7BMQLJS5hV^~ztd2l_u^jtH>uu``wkNC?hy%ByqbscQ zmH8)7eNHA?OlAZo@p}x~9c}fqdcuCGvmB!MkKEHp5XD_aEWZ$SJ`4VbeLfa8l`Rd;JS#t?(C-}=@%)`rx^ zQ<#n0!#c=1oRRej%$1yj)i1&JcTg!mYu$#AJV`!yi}ede+h5=#MJk!BU4^H#u?N__ z>>)5|W%B=8>MdJQ)l8Y z?|fo^M%@0MvGO16|Dfic$6Bxh+kxpR{3y+6y4p#QP3l=|ofe7rEYX=8%VeqvbE~%1=Rg(|!*xeTLldA{pyR=78>IzV2#9<`+=WoM4}1PsQK& z&@tKS_{(~XD*JH{q91EL`7mWy+rL@~`#UP^AFVf;o%tUlwcF9tE!2D0p~17*jwQ1m zWgS4pJq4fHlyxmC?-7hidSivI+%NZoB)&5@Xh$7hh2NyC*~GKi_|AvH>r_F{66x+D z;@w5`yN(gw`FPK9)aLtAo6DTf#9%u(u|Ac+D8@spz>q=IMs0#FK?3gl>N`QB|1}lT zhp_5X*5~n|XQ`C#!INY*`%dbN8~h7l;`4X$l;cn+b>QoP}N-%TUmTdqTXE?EN zU258~+&NgEar!RIR83+weliT0Ms;-x`R7vn>Po!oQfjO_n1OxFdJX@29sYby2Kt_Q z>sRV6pF1J}RY(`R0k(CaDj7dwufIHXQAXkI7i|aC<-I3XfouIm7ed z@%cpjyQy^U;x64&%z!+?`ULCq@ckL)9bTd~dl>%9$o4Zv8K2=3U*Ub9lC{3VN51Ch z2fqCkPx&5CnQi}%&%fo05Bc;nUOytsy-jPcF^4gW{fp$k7r=UeGjGSE?qCda1Acx3 zIr0MbXW18%flenH9L>DU0eIK$WYMh{ZEub&6Y#FFNH%sPd2C&srs6W7LbCu|gU8O|L2K&pbC z)M#nEjVDxygL8g!8gJCM9e3NnGdqRlX_35pA5p`Iy~?a|0aCzLSD~gJ(tSvcs8k*jv=2NgfH$&KHCM}Z$@t0lpHd_-`wAhtg<8i zvI%4DjTt|zLbbIXzO%l+ruxxv{ANSEX%ybHD(h-|x+>?d$|viPlZMdB+KhzPiW)9BR^WZE-{5$ED-7t!at$-ehcm)?fwJ%B7P zF#39%di6{8bJ+h(UH7ve;CUHxc}H~9lab31vYEuGwV17z@yoxshrb7NIJ;5l9g7DZ z6P(6&5mD|M;@$N;mvgPo>HL>S_$m?cL+teh_L@VCTtK~-uslYO+^}RE?l6Yzg+C4= zw{<784Wvq0Pb>8;$ZxyiiT|<=Wp4ElMxlpM%b!h*K9gvD1^##^neG8t^^|otp7%NyS%hB9 zD>c|n)QXKnsd-e+zjLqgQ)1Xh%*H=sJ>~w6WT$k2VooGkEEOpcBtMe8U*_YpTl+u>I?7vzUQ- zmWccSRnHy46|m$&*3;Bi59cY3W0?&+fDE}ak$n>5tc@8-Y!HlNT?w!4M~>_b7YD=2 zIx>RHA{3~#JiPTcm^+s&`4QEa>}N6C_$=#V`0cf9H*4j2BXdSK;J@dQch15qPQx!w zH_<=WNKi8<7LI#?L46$u7L#kt?_1Xjfj3;G2EO)4PIu2uFu=S9mY-;Q?&YqYL~K zm<#z2zIr)cdJQsM$$Z^2WXl)v*O#a{pJV*>0(V{hM}_bs^}+YPN51^gw}@pH^+QiI z)R{`68+uzFeT^bxuE*T+ChWIlY_=J93ioFIVJh+QP)2E|qWP1s#5u&xJ9)jCs^uP@ zt$PS-y}%gYZN|d0iLyU2GX8^S@(LVTJg1jo%ut8*>zSMA&B(1E719W*Q>m1;WR7A( z^5{0yP%`>BjPdvJ+_yZL{n^$TI-0wUnWa0pH})W2{1_G3gLv+<)U5AvU*JuA_-lOl z8=hME4aVkSu4Q{<*LIA1+T+2!8SAaUC}<$rXGOB?TKMs3<^WMBTv1F4@f=yH1llN`;U{)?!l+;!?$lB zGhc_-oK1~+89DD9<`hrHqh@e)B3^z1{x+R)+#%%XWAV8IdB3Ob_hr8a{=O@p?u*AB zKqQcAdOxkF_rgb~vh7QRIDiPTGxh8N%u^ns+5Q+X4rDtFjAQWPvl!c+%lpfycF!f} zUW5-{?%&1hoy4QN$h_AxNBBH(>3Jg4`()wIkm4hxl=$^2`S%m#{)wno^c&Ga65X_C z7QY%zwZWr%p)Hw99Lfy;X!Y!o=vLz8&gge1)%P)af92rd5G-*NG4@<)!u_ct`!>XKpD|8nGIS5tzKnfVBR_9IrrwAu zZ3BFKE3&i9obSX)bZ@f6QRL}^7>}N&cY9BRd*?HselebY7rEtL^7X^4_u=nPQANMV z`Yt)>Mg06DYc?7CJNAv%e6~DUyT;B@Pxi9qUQZ{TeeXri9?0xYf4qGIj#kI>H)M8m zbNpojPpWLo7}m`BOd^->PPM%oOCUMZ^pAV#C568ekIb+fd${;^`BC~y@St- z*S|_-_X2tRE~>m+sq?O9yI5zj&*EOoaq#UpvdRIlZZhoKg*yP-P<_j+>DIy89Iwtg zjtDSF~5H*!{uMgSMKSKa_W|C9S!~-v3w0t?fc_F@f7I9)a$LA6k zPT+MqUVSF7Cu^)Y3hzCb?0lj=k8v939;_MqME0kWr%&O#%c=Y?!P{?OBrY?(mw<8$ zm{;Qax01ha=lCJMeV+Y2T9G`jm5J2bkI?rI@%p!^Rz4=5|ITN>u%P#9q=l*&p!!@2J{-CkABTKoh=ikpsF>-^tdW z8K~9a$vPaZL)KV>@$wdon>V6L--P>S+wzRZo@AD3REozlc0P!^{ikTfeg^k3FQ#I@ z*1Cp_bTxBRcXD^_A!^P?@ck#qTQZt{pGx!#>eA1N0YAd_AE;6nS_Sr1)UIi}mL~<; z5)<0tC7sBHz4V^@Fy5_#{|sjoI*!VIJ>tTeRP%CIcmj36cw)j1#Dq!QvD<-4c`Lks z3a|SS6%MA-KN8=ZN(|VSJbVJ5pG-Y{Jfqx$@%SV0=4pI)D4!mLzn{pvqo^ECVDx?% zM+b3yEXT)i-7$FkVXV`5oyPk~#GEO#I)&NWDbyre^2s(jYTlY2Ne|a07K~zMU~PIm zlK!tmt-b;=tv5M-Ii%`gcgO!_p0}3T$7XE3klOus?(Y1+tix}rsn>}FFQKu!$^H+Z zO^F4!k@IgN7F^6s@OfzdbgXd}k@;liw2s6&)0hk1i`r}_BEeWJIF?#q9Fcu(X1G?> z`=QG*66;O=mw9=aee{^&D)JQd@4>HB0bjzF*~Eh{nd$m~P3BpigF_E;4@+i??`OM> z3jchzGnth+k-c#7gy0}v51{_si_zn*M1?72t!;@0TfpXxxnsSGX0#Qk3swz!!1Ruc z(AyIm+B3IY&4{#?JK0kA|3Os9`9Af*9E}ZM6BRxnlS=jf4j%R?V}M798Fvsb9;8aR zj%aZg6~g_jcaw#$CqCSTuU?OrUQSLvk29_(9$d-%^kq~F7Z5SdC0bm_IWvh1R}c%% zq=t}td>8WmBF;U5GtS}N=|l#Z6+WJK=jqWUe0m1gT+aK8hzobn?)i+kujlw~dT}*T z;lI4UlL&PaJ$;luKF{6k7udftM$ zAr35uo`y1yF@ngtI-{kr)cO<9ri`GrMbDGb^Zry}hY%AEr7Am)STKWVa1ND#)B<-A z!Ed1&xPxeLJJH}tUgepkcZv6JVB-(4^dCh3CT3lJW}joL;VI=b6+tKN0(WBVp|hfc z7y&F#4Y?B8WGz^<5w*ek)CQaJx)Xfc2afGad^nK(fiQ4yIC(5J!ZC~orV}I1rB0A} zw*N5tyoyM1BkRq~x7`Y>?`L}wZa)XNpCVqo%K9v$gg3~6A9DN)vEys<;>Y;Jx6}~7 zvMsRYk~M$Pk;4L>74fMiQg%Q!QOj$JF+`TV%m{R4>(88ccSgwF@w={Uz3{|#WaD1U z77XJ33PhX!cxX@F52gYcfR_$tKa}I%)aFAtV|iAYSCG$FWb4Q1WRT`_xnCpWm4UP} zfcup_`Luxu)?P7dId-)_33`;~*rT#f+w+Nh9)8})HXlj8!Sf~ae}l(=g52-m@vkBI zi`4s1qmQSktL~?=dIZhgLwvo0rATGvxp{ATb#mJ^>psX9zi@ghG;SkUhhS{A@`;BBev|utMLBcFn=OG zuqRPwTV|@nCw64sYBP?uWh^|N*Ugz%*ofnG$erusJ!|TyM4nX`%@}1B_VNUcRM>0r zRLNReZx83)a6TW#C##T!SHSN^u#O^Tjl>&=h2N~g@o+ZzZZ*zag;~epcvVreEvnQxX$+-I)H2*B)+0JuhRXt+j^QiJr@>o7_hd8TZ!bEA}O-?uQ-@ z;@$C#vrfg^k7t#Ldn$T61;0NH?VY7{z{P0xQjV^{`){Hi5dXgk{ohG7_YhWikm~M1 zZ1V)8gXgqLc$Ek*_cY}0)LTS^_lXT35fi>5{(nimFq@h6pRxBGB85D^CF?>~envnQ zX)`k<_e!!n#o+3!d#&=OfqhqEM+dg9L=d?r*_W}W)EL8vBrB4O<{2|D(6nqmJejVFWXeM1HsvkJ_zm} z?DwQ^liBaWerG)%OtCBhK|Oer44vp zi~Sh3wN#61szz6)idzL8uY#tB5WQu;0yV&3R+$UvjV*eyUyiLSYcGxY9eHl51NDKA zuQ!qv7GU%Ftn;WI=jaIXcV>xxV)pNQ)^8b4O2zOkao{T*V}8WZ=deg(!&l4=eg>~T z=lEmRH@dTZ^GFR z_~ac}`yPyag->7Pv;VQZK~#DR9=}fyWD`EiGdG{JeFvvMr;p#Ven-E*)6wvEM6_Sn ze$)zRF30lp!XG@}EK*C<`-At5y5&_PIrc@qk_m}B$4bZn07<{$in-lrGax#{-*(GREBA@uZS_)-het%_|N?-%{ybWh6N zF%UgXs*_+-MF?4okg*(2w&)M1U7j1V9V_J~MC;qhu7zbz&cbmmYn%5iYn}Ga^y->j zqGkX6_wN-iJoZk&bj*%pN8i~_GLx;Tu1fF(ZBs6nD+F#jU6oGSUNN6*%rzAXLMraJ zvFC{h-OD@e2z5`q&@c^}_RCOOKuo2pYqC|;OT~O+E|&)}mC2@4u2snAfXwGT-%|)d zqz-4#TLW2!7y`zKp-79$XeTn&*_x`917Hpr3%-xg)tO9!QLuD@J_rg3iinShxFMoI zhfAvw6G&K-K_X9dn9n1Rl}J}rA*9boInM3*uJW_f-PsWsGVgeicc)IXEaanse+ zHPvYar1fGE2^>3xA=9qIuV(lxS1d4>ZxBUH;8n;7QZN;-xf%JCE{GjN4auBypa zXDBE0=rqsIM0|dY;ke06S}f@mn+i?2e6i>gd?LlhLdKAxUZvq!L`7m3f+;MBZmJ5J zrjwShG*v+DRU(y2rxT7?i{DQrpT~QeYOoRkXNMn4&$S8p2BAVk088KH)Hk(P617bzJ-cAani|{}e@`a*W zPvqoZ8Kj;JuEH66Duxl1!`K}yZdoRcBf1a-hG0bLJ6Ev_EH{zPq!X?c6bgBX0z#?C zmP#F=lH!%^TJVq_LqKiP^4&xxlSx7&CvRv5E{m`rA? z#V;&h0L3pnv_{t=8LWhOrML(}3S=atGBuL2Qb=P@BVse+l=%gK(9rBJls=bdoO(aCfB*Bg>B6`&vqD~u28Ff#u5jd96ng%cxreJCciCzjQ zszF5x8EQ(!7B^D8+N4TMsd`nzsX{}=Dn`XFqEFIJdmm;=~$Y9l%`=94VuQv$_8+zR8_U9v(T$X3jq^MBc;5Fdl(`bKx~r9R@a~* z+)Ioo63VHjw~>I+#rn#XwnOAGNksS>I;Dbeq4rTvjjl5xNB00`r1)+I7+OS(XskmY zN>^hGJE@R3CFEf>1+$(dkn*qmf>25^B9$V=H@;=EkFX}h(7r~!Eko0bu_Rr^7ERN??(G1RN*LkSvQ ztoY@U3ZN~3cP(oL$jX&4`&Q0n{3!1gLsZ zaD`Wx@|{517UZdxF{MRUB~XPF07&p6$QYII&7c%Vlp4E2LKToJxF*Jv-s&Pgg?2(A z(W|gdDi8?+Qk)n|hHaEvkxQf&HlttwLqjNpm{2<@-K@MwkV=TuDb);6Twf|?t(O&2 zjUq%aI*ocOfYmipWMBjk)$&FY0!SxY!UIhpl{@&Bcu19u@Fb##RhCgqL_1?ftw1#+ z%CMW9PePQc#;9HuA{ymn)4kaE0u)0EcL>Q@N+TJGXc#alKrti8m^uJfXNhe9f+%4s z0u+5}wP*liH~~}0P)I?fV8)UeGc1t7mUy#tQyYmoO%q{hDn^%5MT?afP)%sm8~2Y9 zhX97^G_N4yUt*i6d^O~eE(+(g9Wkj~M~D*77gv%2iE=0t`K0X{sGk zKsi}EiDV+EE|r`qLnIl9UWJ1NywZ?IltY6C(z2ve_^nQO#g5n99fywoKOGLo%{vh=^b49GCPblCX?6DxcYvbEXVYGM@64yCGT)M1xqt z)!42>Hb!iosrF4O<+}(_PYmUYh@-C243W?94%uu;TN6NJb2Yh~gIo zPZCtTav(iZeMWF9pjx8P{#hDLv%E^O-Bq&LuI@;8_P3}mQ0fqu9UPv6#rb=goR7rKG z0*h90w{$f^CZg~fmORo*A}#sJ#l$jVlQJsAlb2A!&@oCxRmf0CFpAPLnKu) z1){N9=JTY=;zuV^)ua*{X_)?EB03aNAw{{dD@O8(cx4uhNE6Gbx>Xsq91y<~iI7n$ z3Ot|6G|Bi$ZYJmqpAwawQ7wK^?ivQIIby6ym9Y|0%6kdd;_A@VVzLIm(20z2lAGHH zMyrOW5pj%0jhFziMEX?g=}w`ll?CIgCmQFTf=BC%8fCDw>*lthelDp;{v z6|!Z-5||PRbRu>bUMN2-B&JaGnKMPHN>hOZR3X)hMyC~k#)uV&F<;9N`N?7plYtV!?gFD7Lz7hYt1Cj@P&lL^HQ9SO!sb z8X`s^bx|230sjn8;0doaZ98>rlX3C}5!QrQDqtMMrLHm(n!G5mDj==sQMr_S(~^Xm zDA8(dyABO?39A5NW208zBBCx5aO59$EFpqhzLW!&R2Z5vW|DqmL`+rJ)wipwAz?H% zV#P%faSqk$;&O30VoA=$Bc`frYinwG6ERb2qHRSbeX=3jMeDmU=TVw@lv z;zUf9?4gTJ6v&ZCscn{MBYasDkxv|vuqxsE+~}4-E_W5AfYXV|&^Ia&#XUkq#Z{G7 zB8ISn7#~Ilq^fM2+A4>8Y-p0nFzRrIcj1s9y&_;}$f%|&A(j9aFJlD6t4J(&yKCxd zDKdP$6KctQ9~lwHWvU=H(`pIPNZNvou`w6XDu2-c39AjDlvUJmQe_pJz%*(N5v8oc ziebcw?1+$xS7yhUASzrlME-YJZ;%Ns&#`rz?0tsu$y?M`CiG|m5sjLt zqlSbnVbFj2_2GJO@lsnLCD5hvs zb!xEKmuzWdl=sM*%(SVi%`kIQH>wrGuZ5;cRfSZrGQg4& z^{Av!NJDI^uT8rONC-8lPbOHzLzodquTnk&DFZlmLL4=<&{Z^A4v7@1T$Qc_TSBDv z&j46e2FT+&v?q#{kw+DOV~0V3&b=C%nr{_Sgj6HOn9Ttr&6X7G*j2T4ZK}+?f=WnJ z{4-A^;UO~CDRQq!Czu&jf*K0BIENG?8UvO@jDR7HovN*`t4i`%jo2{izP?K5T^Ys7 znA})WpT`nR?N$t_Vv06(DF+mE^@@l%RBixP1Bj`b0h$T(Bt!L-c|Jn8gZz<@m1L!N zB|MSPU^PdS!mYlZU|IoKl7YUv>1<7!9x zv-N};1&nPN18P&uX4T4EN4}_&RgsXfUX6dmm?~#;_5f#ygJ0Ct)z_f2GL?ohXgE=4 zv$>gSoRT3V_d|@SwOg?rMWvCPs!@?i4pcPRs~MS;ud1)l@-r?2C{0P%&1>8m;kBkF zt&bPUJt`4WPZ7PElLRa_qY9~jEg-s?`udu*QwgY@m&W9uG-O*TZs4Xk4WATC5(T7V zx|Sd-Fh#-;kQWt^NP{ER;rWXJ)Cd-K+)dZk@W7AE4FHLN3T9#;eRHx$xzi}PePQkHQ?&sQl!Kot>VrfS>ORhIw-E+lD5qavs-gu)te zN+V=^UI>YN=FAGd8f(T@w3A3!orokg(lfl#Aj{4&TW@F=XxXC%ZX**5KJ%K<@)07J8I5m*M! zsD{W>Yhr$QXBFWz_EdJUbctLhDwQEyRejr9oJ;*sz)B=FeHP`E@XSM@Na#HgOO-D;tMtIS6QSgwt zrCQ0~5(Y#sF=R*{qtuGN0$9^fUv0}Xk+Fm&K%*JivqX4uESN^f3}s(Js#npET2iHq zlw&YU3ZfRy0*G38lsr-?faq1O1}ai$Ib4V+kc>~V^^6wuc??v_b7)+OV$IcR%&@D{ zYp!sr8|t$HD26aLtYl5uHKB5hBZorD(_jq2G`t#1mO+X!%dQ7e9I9Z6J6dR3Nbr4pixtWSbL^D#N9t7n&u2x{dvz)3n4fHR{z(`l}3!_nUZW&xT zq;U|EPQAn{tzG4guSS8gCkG6qT*w%^Z9{D`uA%@`ImHm#!BP)n+C(f>?ifT0W-4lC zmn95{4Rz0J$k$j*PEXf2&^ftjDJD=rP5TD2WCc-7v?!$Ll>% zWyw4V_qkO-b_yu^h)-4dj3Grd11ZuO85Pm4uCM0@@iOn)98xr;hQtwT+t;T<(jXfG zDxh8xK6Ikz3en<4F(WM1Dv10`Py{CBAtZVFUwW;3l~P3n({^eb+EgK-{JcW6X)I}| zT@F}|2e3dkLo}5&C$XynQY54h zOX2wr_YgHq2xruiVX476LYWv(EUAoXZb5|=cvY++50-3B9=SdVpequ}T(?=oJ(M;g zp#c>6p zu9jg7LK;gNNVCaAHQ4QOJ{SfIOmCQJ0D! z-M0ZudAUa7u8Ih17*jc`B%vrY#xn-2L=2%ssS%>%*0yVdFy_a1p$Pod|MvA6RjK^x zWvnP78l4(b8sSCxoPH3}sCMV5p$nf7h@6GU>4R7DK$B8I%tj)}*H5=K%gCc738 zBc+Bisv9`eh0#M-R;r<)+Rt%2&xoiJiuXgV(0xjP5nia$Rv?O3X4m2VQi z;HhTr<{2xBh>^RhFM?PmAV>n&3^7z^gvht_L?Tb3T?6DHxL_NnzI|;72%N}hv}&xV z8O`W428`z@1kN;S1T}J&W)D?FMWj3wXFwpIpt`GqE5F!@Wo5k$$wl_DaaiYP8A zY+(US0mGJ6y@F~)jNhu5E`mAY?N*x(ZR|oLMkMJY9zrT2?k~hyL`21F5iu0DgeXT5 zDz{`a4Q;C-k5|*7KAD$i2V`;^6UMwT{;!@9MN|>7MZ{9e2BKs}^&FMacCsDoDS}h& z+NBCSJAhy4O#=ayaHFmf^F~}Tv|>3TKqY;Ks*FS|dn zHuDW5p`bS-io9*!2}N|yn=sG|c`EP(PGkzDjO8oS zYG}bwaOF*#u5I0XA=!?kp#e^{D$G&DF#W5DMyDZj6wK^m$ja6$>=+>;VzyiR1UcEN zuTK@IrpUx$z-bXtMHJR76IJPhZ3CF(XL??cZjihoxj#l^(8$uFbHr2?`9i&hVkk{S zzmZrRM8X4D)uj`n<>c4L*@i05JOgHes)vUNq$0-I*tla1XwU>UYShq1Eo#&%htZeR zvRSW{5_dvX)g&eIKF98%f7qx>O?!L;fdM8kvuQ*tcI)fNy1Oc1qk zBbrg8$;Ppqn*W^+-P!;s_v%ccmTahZ7~W`}DhuRM$kD<|+))G!g;c;w#8|MB`J^YJ z(}o^(j4lL_%0kp?Wjj{+;p2P}qI@ab5xqy%xIvSB3}|GG!Bp7hh;ChvcKCcj07DP( z-G+9FB9)w^4XrsO9jl0{bp?%t6m6PCU?Zi5T8t4@--a|!ZIAXgwSMRTnvg8Ns$;G6 zLK25b9hHNsDCk5wT@*1w5b;IE=shZ}>CwSOr6oX_hYIZa_8Cuvlu?yp>d;suEUC3w zWDP}(8dn&FiV%&6RXs?-Wq_tlD@b-|>q1weIFQXkd8q`DY*j&>3Z+KE8AN3+6ZGA> zr1AiYh{6qa!W>$v=~NvsTP*Tv@_GmS+)RJA!2C8NL*-|=-xG*Z=}VL zH3m>2-G=r_W>Z6*Dyale*;>Zca!A25fEBQj3B@szoqJRPC=G=?MM8b-gx*(mst*V} z@=c@zz6*s^302CHn9TuIsq93lvIEfV*t4brkbJ9p)AsE8&V*VsQzeE}wW^S@9T70J zVx-xSJ)u~tO+{2wI&S-(wMCJzq*DWkR;8gtCn1jtDT0cnBO!I1W6W3qSq=zN1)>xg z%hme}G{Z|{5o=U!MpZSPYZ$~b-)Ptx3TgCeOli)GKm|`UXs}c^b_Q5K)Rs4 zXwYP=WU4i}*lyo3rQ{Jr&Ql(X+T)o?Bc_}iE#-j5elcRUPlF}-iMF&c6H#d|w30ND z>RNA+G|hq*2)b%#JqgV>qmB_!gfduVN=3v>ug(!5pk=Mmj#g^g>H5yq+$5=Q!pm|rHNmF(1>@--@RR7k{>K9y$2o6$7{6fAWL zMZ^(%bW2j|!#y#h8Ylu38RefYc2)OUk76J;Hc+Aei1r0cLO?_vBcMuafI|^+#IDPw zNPlI3p?ORIla@>@A$Jl5jgSzUzD0VKP5~KVnhu(MNS<;L-A=u#1W-8>H$!WxF6D#a z1YJyZZLo}o7#GrvEm~E`MY&__X(SYpO|0qAn^41FjT4fFI+d=6%}8Uho@}eON7e|* z*+&1Oh%!iXuF*+EpAb=$O3HBS`x0sZ#C#E;7*U!rwkgvp51@7GO5kdAy24_2okK8$rA!<9aY`8J%EZv zuj9z2fGV76BJ8&GvA%m+=d#2K=oPlIiOG#dGwOfRj_5SUCYIrTj=O*!qLbW{GBD`Ln9PcIfY1K7S_MuMrRlneD*!vcZS ze=S5UfppxiodPYQMNVZ;1SywkUn5LKQ$WjZ*FP)iLYENGa6nn00@6hqs921URfH+B zcPM6L4C5k3HF8~O4vx@^W!ElW+tk!DU?^aO7hkCAQ6U)(B`Iq~L{W^IvJBGbRE@$FR;q6o{t$pBU?U`*HM$9H zVY*8DdWnFAaU(>u+|J!B9b<}^hCC>?%#ud6a;5Op?bR(<7!6sJr4gW*FjQz{MsraK zQhJPUWqQ|fj}9A(H5UVE? z=e%;OhblF~sahjMyJOFQm=!@rz1BWUw17Axr4qJ1c*T@!sqa4KSnGXiW7g|BV;Ce%Yz z%w~|ZKsz|%zy=xSN30P$3Lu*01lf#2EAWhCgld%tNjtnqy6f5%@(7gJCW0(=opTfY zIw@c@Nn+xg0+v{&^2NNVL4)gZ{^ax1HYI3P>o^GA!bbQ5LV{ znCK&3DmYV#Xt@o&gGPlistO@RO6j*_ckf+XAmRzA021bmHX=ZfRQ)lW9K`xm3!0s3 z6;md9wb$?}?UcwPoX{pZ4e%D~9Sh?bh-j?HsdA2B88fP0Bk@jFwM*ULrrV=)E=Rv% zp^`@gpms2&MH9I5I|+pAx(us{G~ zD;g2YbSjvt(lS6p)e>SEj3~7vvUp``VATR&$RqA()eK=w8Uc#;m+m{2MF^p41zs6q z3>LzKzF`!gk;kqdke9!KuijlX#GQ{m_1>C#hasx=2P=j@$q~R15or;@Xf$jzb_R3M z91*W{dv#n8{-z)~Bn_af+&e(8(Y_L-$vmHb+!(nnP47HAJ*h{puFbM$aAqDxyfKG8*qUkVZr;_ly-o z#Mq9Z0#&F;rmzF%t$D*SkF^diHaT7U&f{LbK*oR?;$(;;b}UzFnT(Zy+GrU}Bx3lH z%BTb99^DqU8$5rZ;vrwGRKlu6)KY*`XN;Mu#E~81m2_GGSSGQ4E;|{jrw6qkpnp7q zr?m~B#?(bas<1|#L!~r`V6_NH<1L6NU2r9BZMk5cQEBLm!c=5y7Q~GeF<_*Oi8X3Ojc^JmW;7vHBC6OiMl6R^86!YN386&7N>uX>2gwYr^7v`olF5&1;exp>6X;QEDrL)ZBR&>(7}5}k&{Wm%?*bEDW#mU5*UDVBsN zyy@R%9zR#_MKLA5&+|%ANu`K}siN0E&;FqaL)eyN6mN8U^_oY9466DyHWF$y;Fw42 zq~tKkSQAUhjH*(jS5>J<85uIvsAx3=)KmA&h`XemKwi>nNl20JPh`~oKpMwNubkpPEDjOL ze^!U?^Fpms->6azVhdc2)GA=1h@mJYx>Pa;#Ke#~{=cgbQ41Y+K%%Kx%n2g^YA3|W zt`q?Wn0s8zFLWhht8Mj|R=D4ZxYd=H-8enc}sDqv}@ZNGU^HpY>>GL#!3MX!-d zDxNe=+sYZ;DU>mzycfVWtHmlsLIlu~o2HyT*+$8Z7}1c`41%=KiG?(f0&A8Su%uLu zB1B&Kt=_1G65C`^KvMxL5vx|5&(xocj`>bbz=+1ms#K%biW!HJghtK?${-pM)2s4x zE2i6MG4gP2RQAEM3Y0RYZ0XA~tk~)bl^ohVt=Jnj|L*ftp=v@=nMlZsnUmw%UJVPwL5@C{A)diM zK{SCCurjvBcydstSuvxb>2d>qH-MV^*wGYL3fq(3CWq(^oG9j$3t0&%C!2-F6}cIr z`bDReenG0xLSn>N0C911eM7%L_@l^jj`mGEC4Kt;XnPa5sIIer{Lan{3|qGXrza`99z8^E~IAd+)jDN-QbF#L$5< z(*XgUxe-JSEpozhh_EtFk@4d`;?B{e1mHO`wz0q>6`1hkN46({A{=Z?Q~t)Y5dZ^= z2fh}N+ijZd5?eqDX3;F}YXv4lW0Fc9>Am+6vaZ11ZNK7r2>U%s4Q!B#Qj)~5Iq(=sHT#lCM(QK z7fTpLOhc9xAQ$TtkR)v&Nm2;As7gD7u54ch$+Vz-nd9Z)K|laznmSS0FJl4v@11-WSk6&igJbk2>)$!ozy>xIgNtyPEiz<;bB1#MbM<{d{cP+ z7Z6cW#!I%W}(*ZFO*vN$<6u@LWECvNb zvIgMD5)Eap^k)f*QVB&dj2;Bks1HDbv4(t?n&$_V^YcA2#3BlgjG;QwF@%;f zhJJvOvAiroi5o(yg-8b^C0K~EQm{$k20$bYnJIyyr0U4re)I$OcPI{O#DbLh5lTvU ztRPc|k2!hBfF85_JYhBq-VoUep#3tLg4Fq{$@Z z4Ki!o(EGGMnMha+QX~mhhhz@|tLq?TPhwfZ1VGK)Ni`mt(FVSNauOhL6!By@2~$MG zY)&z;ZXCN)skmS8@Cu;y&objR1Tas!TSh9u0hy}YNQ8k6S#m^blMQqFVO2sj7etjR zkRg#EV4@Qpv2Z>S0Y#GX{vayFH-(w#296{`LKTQ8s3RS2YNe(@%E2RQ8k0_$&j+3u z;AG&mg)$_!BR!EEy#rTl1mIj@)|3V=?;u4vUct9AB$iYQwmDZ}CvYPA5%3rwMjPx& zdjmm6kNlvFQW+835S6K*51yUIl$BCM0m;@73oh<~%$Kf`pdw@=H5k0bAV5Xj$R0#T zB1dwhN*y1GlNWjWfkv}`g}s=F(y^`rkh_owD&Uwh5<3b7_>D%^FwD}C zQZ)RV2Fb!kSK1G&Q_ANLSW^t)hN6 z(}+@YgH0pZr%)g9m>&@gb(Eu&sS2XPpMa)Xl?v+)fY~fX{2+;A+;D2>k=qa9^U$utr0g6;@@07{zOrl#b+d*p&gI z2bsSC2br=kl}S>}u)tv)Az~wwJvfV85=(-F@XB?Jyq79 z^H|u3H+;!9(Oz=kAeaRCHHera)Kg->N|^?L>IH5MUYNz^jc21WZKb&J%R~lAY%nyD zFZU%A75vCtnPPwzUG7HEiRw8%4O^L+I!6DvK_{|ol<>sWPEgnD5aEvuQ4CkLVNRbG zG6YFtqM%Zlfs=6YSv;AKXTtDX*4j)5PnqOlH&?QbS(r+Sfu&AZ z*kJM#MHV)!UE(b&MyeP!+=(QmC@5Ezw{cu#5?0NUlKhAP5tZSByB}#W0LhEwW@>Cu zQ`m{6h78Cc{SYNzilQ=gsi(~E7gS6(s4jHQRU$~TDkzfX3QheOGDR6Xk>j+$5e+~@ zNXiLzBQR8GD(-=X1}?9OZWQB&GDDiE>@TV4M3Ey)KgP)~aNrkg&{f(3H!NZWkuf=C zDDB4Qv2j3jBOXt&uE0+54UN0I&x`~Xp-4$RZ#xZpB3I+3?<6sg$4iHM>fS>#~!@D1^10))TK zKoM!;q>Rj4yWpy!f*}oWz>N?!qK5Hyuz68zP`2Hj}CpsTo0P&~Y*> z(M|I)rB?j<&R9fb4B?er=uc7sqxdMPifvqCEblu~$6-A_&{fRF>k&y*ks^a-n4}%z zOHqR#`0x0UBT_O(XTXGLTyb?mpX-EFV9O8DFz#O&aA38ftkV$*3DIO|pcpoHzz2^J zz%-wVjDUMDSqt~?Bgz%iCxT&UG9tFA=3*zr18Z2ORM~D^J`YuuM;xrEZ#j4ml@+ODS{w+TuZya%GOZ#E{WJ)_6Jx&RU z0l2W7+yaQxK)}t{X9qwM!RfIosVcjVLJAPI^SlN;e1ePvKVp@-+5K>0lIDR@HiF!| z&4I5WH~fMXLxyb#EH(jhTvFi3(SsCo^*UT_6+==yjTGj%<^^5pYy)do!H;sgie8jF zDdG`R5s)JgPX#!Ms+ko5i*n(SFC&6Ot4Vd*ga(=&=@Jimt?w9DWICsJJ96BPlnn;_01=#wtpf^x8W0@miUh@j9AwARdOh6{7>K69Fb6*gT{&7Hp6okY;0oJYo;^assD~lcZ zV3pFJVGXq1C(G9k%C5*ki_prhx!l@ zu+Wjf0PDlekl%-K46_onABp9R!Gq*LWq741g=!}B(BTq47K2jPM`16Dg~dWsJ#Zftih+*A zF#uYJmdTfn`~sHT2_=wh z6P*F~uu4Kf9Wo%Q1y-}Lr_vDMQL!+plR2`zNm$&Q(d0z22*Po))EVQY*+JF?LoGm& zvVw+a+-j^vlnPaaq#V^^QX(ks?FR{f3i}9bI$&Ta8w+C%Vil62jG%-EWf3wc7iMjv z8(CY__OM#`HQJuWyo|${}PNUxD!)R zGk2U4k%o$>sRB?`)DI7fLBWvpVRrU)S{dFtQLHJ=L~RIAon_MD`fw5;D8-^(j2g*W z(Jj~*gEvyOkd#0Xv;lF&T#`at_B@Kiq7@mclVaeeb94p?#GFDdWQvlhSVV+FeE<^5 z8s-eZbxM?#MUS8F(M&9YMWu}ZqaYD!89oW{y0Dv$2NgiLK?Fo3;&6eolDR?(Hvl42 z{V@?xu+AN1tMD;ED$f{-jhkpJH&@JMB&o?7*HY((`AD)dNM)Qs^KUGnI#_T!z9xPGjy#m8Ret zOG@%4S4ROUVPf#W*`c{(dUz1KA0X(8|A?c6C+mX!n@kd{wq&`Xv7?p)ok@kkFR~}G zEb+v!$qs--WQPxoq+ABwfPlEK0uO#eNc1G2VNR+Yu%18EfvSpq7KV=uDVB!mpRQ$atn{Y5t*APEY9GMoshM8q~r z10xXVb`b9dkYueou(THp<8jI~kpY=y5}tIWgt0_+OeS)q$_Pm*U{Ye3%awrDqG!-Z z!=kH@h;UvHeJFN|EYQI3GpDbDq!JOs$z+x3Sg0Q+=IO3!!XxFg>IE)3gYTk$*21Yz+NDl^xw;;=axUX_kcu+zl zVFPEo@bUv{g-m%?O5p$;a}01ri10{NY)`=j%IxK~iGjm1Lx~8Vsas~QOth$AWXHw= z*lzL4q+`zHh$&n!^#*qz%p9kPc|$}&pARDtFr0Z(2}xdzPJtBxu)pBfN#rh^b_L-{ z{Oj{V@*vPta73D6X`V5-U!8SYGE3Ipgyj#y`8LHR1cj&|2M1($d>Sa82c}q+ zGJ~{NG!uv;Z`UEhA6Td|Rl$`s0>Kd)0dn>4()Afgh*HJ4QLONC(c4 zt4fmMi$53-RsKg(7ln1ebM&BAHWmUHDou6kT*a?Fy>E0 z)aMUEV~5LpqLXwBdq8Bo)=gmpxg*Uv6>TCvBA6UDP#g24KO+4m29AUXi`zQjq&7wb zM80PJ06l<4@+r5s~qvo>G%O1qX%{`l>lzT$fp%1%k~D zY%Gw`({lDJ81hJ!5$O|yVnF0kGzSM+uu?|;0F*(RS$dqZ03idSQfgq>V5CwYqYgZ5 z*lAmol5c>4(sGW|5dBaQQ5_ux9HFkHa34NI2;lI79!-u$NXSNN9vC9)Hk3|8Pzg~1 z=I2KF?;xy7m*a(JJx@d@d+4b}bf-Lwrr6aAWQk5BSMxxf?nOeRI>~Jc-^oA{e-IW{ z%E*Cx^R0P(co7)m6h+08Z#Nco8b_#@iOLbU-}s0_Y-B}vK-44#s}1vd;V>W8t&l`z zfY><5k;;1h=^Q0Me~R!M3m@txrKTMnsnO>97Qq!@c#aV+cz|A%u2+&9r{#uUHX@ud zY&Z(hWPlQ5t}G&|A|B|(mIeTMq@ovroaDu?Ys3MAhbgZT|A3VIf>iMvOgz!fi#5U` z(YSmRWg{|#Zi5}eQQRmI{rf2vs1%qYAXSclgez&vzXpmh4OJJI*^A>SU@6_T&ip8K zWGoq(Bd>4b{1C6FNYMNRMRnLzK1(btA^|h9WJHQo|Gt0)~NG>Lc#{x(C$OXk#6_$0F-#-C1akwhWDmDR>9U>;;Aw!0R0NkPEKKKk- zA!t&qa0d+zeYu<1VKVbkNa{62V;wTQGg+DHQsjJ1Mv91X-~eWP65K%p4Vyn8MIy|Y zNmZ+9t_xu@Sy6WIGlZ)cIew57KNKdSr~oS>0!1|@BIY##qMy)-Tvez^SI`fKl%lK{ ztqjl~l0p>)<*lm%kSQw$4j{@?c~Dm+AWyZ3_|XyaA=so;l|?hL^otxsofbVnkRhTM zjWCr5d*E@vqoBYRmHtsEqRrVOaKe`Y3rtdyRECZiIU*j)s1TJ90TmXqFCE~M_>_S3 z^dja+C}*18kFkW!4yizW8IzqS2x%%}Qnbo|43@bO05#H79s~scAwzT{h6OfZw8e)` zLAyiz@I~@7?FKsmmS5;VA&H@s8$2)a;A9-78tFwYQK|;;}lwgA}Baq7)KX70Rm4oPZO)ys<}Jac|i+ zw9qehWI#lwvl{w^a1RD+pHWk>?Lyl{MR^QDRnP+%;l!kZBXgw^k}yeJi6GiafS4Il zBBBrd0nv0Q&hXGZC<oOmz8A_MP+zMl6k_MGt)c} z1*B*o!V(%UikjLJ;n62V4__!`c=(Bmvalgdp&U&fP~qe(Jb{MID^OFGpvb|!r4m?5 zc49;hEW3?z5=Hb1{P!0Liz-XgJdinXVv?1bR)*XT)TUvAHUJ8V5mGb&7mRo!0RlS_n;rq{I`xP)N!pEHf?A07sf_i-`eKd0-F4AOd567|KyY)+)jP2S{LS zx(ctt5Sl+E`X0()38gYD${`VTU?p!Qfgu9ok0J)Jlmd@60+1sx4+OqIipm656lA3& zP)aLZk%!M9Ku0n_*6mB`KmiUXX@d!gByn;UqeymwZ%`cyH)1Fk1)E`mVwya)77kqy z3pexzmc@U(92ZBS4g~;|1((3&EW8VkB_*jNL$ZQ?@<1VVT8Ij!wR1eAC;{@QAyXA_ zV5o?QBm-wF=7C6%l04*1C_);cE|7@$Fm@cSAVF%hI77yfse*PYHxUx!E+JIF2A$l& z;uTq9mR>O2zom`@Xq&T4L;N@{>+6(90@$eHokN?Cx zMp2~EgAxugMM!wZ*n!14bT~PSVor_%g(q3;;O_c`PSAsfD-2QsM2_eQ<_0;5$$tb1 zp9m2fWqBTmGVm0TEbd?iK@s#elo+U~k|BB>6(v>K?j$I@FbC2*B9g4C@FaX31hlXe zt5R}_@xzl@t;&b#qj3HS+;`pBngC}EQ({S2#E}qTArqLMM~Alv$(j$cni-81VUaYr z;LiXtPBAmY*k+1KVZ%*i{u4=ZRRIw}>C&h;4`fD2*gwHOj(1t`BTvjk2v(ko=t8Ed z)Vz_ZVCZ#-=t#JE1nyQrlPRN>kUU<&-0*BjL=g}3A9qtE6B1*xiXOyw4k@Y%hGRy; zKh5l67?xo)D1%1|2iVV2H~^DdAusshJSB!dpojFx;dtm`JJOmUsIWb@trYPnigOf2uc4z^%0K}1K!sIL*m;pr+SM(31H5^wjggJF| z&XRgX3>y-I+9!~LdC?D#)0~dTfKga|{*a2z13^e>jLyPNQ{>jcgda={5S2L*6-DF3 z9Aa*i+I*3v0+Bw-h%h}Ip4JDLEO;mY8xsiPY(13!$ zNp?z|y9goCHTHOXSRtUXGnN=S+}+fBlNTRqGMn>BA_4x$wlz!i_BrV zzX}>~F;Y=e$_z4!NHT}>NJVabi6J2}H)7Oc@Zj`tK;wAmB(QwaQrL$nh)bAb*Z?Tg zltm4qp{fKZXNCyL0T6*Dhb%C;GAIw$0U(M%0RCg18B2PB5ne$gipWx#wcL#eDB~$T zD1(tN5s`s2nh7C%1VWxfKrNi6g_$+tOc#<>j2kv4#=WNFDPl%KfDeGh5b+~J)aJva za?+K#NzfFzaJds`Yi@jz6s2bb8B0JhE4_>ET!-22L8B{)PM1;2(3NC@OgwojPLhbobmNj^YyyFNO$OU~rUAnwxEmtMwWA@j8yQbP#1RN4B^Vz(*NIow z7$7w`*n|^F=EWOP^yBD<2$(1^`@s(=EFBi8z>9`rSndQab^j|f7W^10ROJW~3`)qPljv@zR>LQ{hIWXHWfvb<87jaewj;AOWu}y_QW&Jg^;k<#9FcHrmP;wh;%E9;t z{EZOxcLYvA=EE=pHUtz~aU6J&7m=gX;P@va3mmGFup~eUjC+xP3y2z3WO4K$bcw(a z;KcTZrbsEe4atksnsFovc#J2nobXxLa03XQ*#Of(LJHi;lkiY(loY&3Zp0%EmW;@e zRHaS>)bvLrRT-kplRPN~D(8x3aZ!Wj_X~!czH#Uj2@_e0Lpaum^A?Bvh=6{w${bmh zqU)4&rC1_28ep!eFlmbzrS%mcT17+%otb)ne~OY9!G7*2k&_=s{zqs6U{z{2-1-dj zKs;(6Mk_<)xj~Q=I&%6?M?@&5*w-P7jA0d-0=NMZ&nX%+`$0^a&O^z;vP0|}#qJ;U z{MQh{ju|*&YNQ9^of_CX#+WByavk-Jba+GgI34l2z+pjpJ;xg&CerMFI!;sN466U% za>ULtDvh4oO|8nLIdy0RdPVdlyveHm6F;IGujdGV^;4C8QL91=TsX>s#DihQl#rxR zLF{0A1C1OZ-XKXjp(eS))bQ14#ISWme8|HxkNe&4P zL=~8#4jrvCk5SdDG zBLd@J5HKWvh@J3+S}`*CSpf7;q5*G_CsENJFblqCB$eqQ=LafEWC>7$mEDM#fkgv& z&H))vo#-UGGzk9D<>ET!XqXR+VW4EpNkDlfQ{R#h_8A8(}deF(jZy#t&Y(kKklS6bvEJ&0KadbU*}!A6beZB*IM# z9*#(Xnix5SS6aFKNcu^ICLSFb{_C~w5M20(z__lm%XtAtR0L!+ks$!WWh3YjF%p=d z7=MshvI|8#RF>in&Ml>R=+Y?KMf;N=U?SiUO*E1=u$PO~mSf#hQVlny8+)QrwEQ2N`)j)EMv?X!ec~C4A}c? z(n`YfLliU)FD~WH*UaUR%2tC+W>!;5>EYnsZw3(hp2ZB=$PAqpaw11+9gRsIYT%e7 zSxd)*4#AL~Y%KJMnb$OM5X_R8m5~9NAN-4;oJ>`o%PJu<5ZVq|R}hR1GtrTVMUoOI zSgJ`Kqa{)()UF2<_m^#y0l|$tw=}bc;hYwhhX3%-4^pH_1)()f&}v{Te?3DMX#g|> zLD`KQQ5_fqD|w@wlZ3{c!Wc4{7)=Z{X#B_dGY-f`W~CxXX9Sc&l_Lu3ST#P0hLL2B zl!QevNg`EP3?(82D71@`CuG2x@i<4RiG)T(>$nE0iMo=i91_r^T3{j7WPI{Fb{GE? zkgVj1KLer=VugN(*h!8AfeDR4k{gYwZge!b5nFzRCS(`ioAwk{;gIykDY9lj(8R+C z1na;S2mS##{ue7jn$SUIxIkgC2mTsB5s!0IP()}z#vzL#!GqBTuHmsNLV~Eg0!!*Q}XtWBn6)l)(jLeeBeo6T2PG{k7Oyyurk_0;2|6+sLT=fWO;;k zGQ*TEq+2S6`e?C zCyv2m)u;=G*6rWW^u`p?tLR5a%9t@YEI^WMe1+DlqUq2U(_V5T$snrEC|)lq17xq) zi^>tzhA2o%rmINN8i+$v3R6VI))xSo=oC3DM!yzu8X!_cODJH&0%$Zqx}p=Of^BeI zOGn-QT@(eWj5q@zV^U<^rYy5h#+Ii>Oq zI~b_I6wSdGqIV-V%78OcR3HPQD#{0oo_3`C{HFVn0ZR2s zAMo#@SNR9{Ri%#tU13pXBU>|6^rEu45h>mPQ2{6ch(LZKqbcak5F^xR4uwQSb`+=Z z0cd0P`-w`*qIrHKrvu)YqKK%89#fg3ywV+>0H;h1#H3J0S8^~V;tc`)kQLR8df(n!qI>x!V9hwMOC`-pCir)C^PdD6)BoSKucjV$S9^FAmg!= z7&tPbMADBX$CD-f+E3s`V>sN*go@cPcmP}xsMCj)m=WknF;d}!h{s^quadgb2kBe* ziy>-++RDi(trefTg>IBI<%ldF5le<7T=|9S=J?ZarirSJ@uI~P9Km>j4;7W5e@#tVu<}=CQ;#UYD)kfmUBQ2I1;p#2OI+TXZC|ND5PlrvxW5WGGBi=`$QvMT}7*vIYTE=(kLJ0?0I?>pTptW0R)&Xf;&<>3mjT~r*k%G$ zP_zmvpg^?&5AG)tYD#4WTaX`<7Qe+E&=?VN222r;v*Ix;BU*GA7rZX0nS)}jpoDc4 zD(8sgNcx&XvVEpuN_aN{GzDQx!vN8K&Vld%QWpg0&j1l&;X8Vvy_l!P-Pmt37+H%i zQV59@RfZ5aS3`iZqF6KR%3KsOp+=4*C+&zkldiOb3`x~1Uc|WNX3($jS!W%CGUO$y z32VbYh(=6fL`!Lsieq_i)Tf=z;xoyaMwtmByZ z5+<|=eVI=+Sx&fwy$8?4h8*ui9 z1K}Ih=2w$kkv@nzYxs6%NTs$C$LjzMW=L(ULsS($1FkHo3<&)-tiQ$_&h~=uxUf_P zQ53u5uL?Y#``S<+6`KZ#(U2&Ir0+Q- z6%}!$cV@0SP@{-EMFp&oSOb*eh^&b+LujKcO2}y?#Qiy-iqD)>2jEy(wDxNN{y zE)WM=dp)#6ASY4@}a61 zRYE$e@&EDbVqun$C@dB%!hZ@{VK1P~g0(DehIjnA1Af-R&!h0O4t@mK*94Z?g(#r_ zK9|DJ&G2&v{H%qaN8x83{QMYxegQvvJrq%EbSf(QBE4S!asj9=fkWxPM!~}Df*QP; zIOC?7a0Z5T3zn{Ep)GvO>K+>kj_Xkw1;J<34UYy*xU54aui!S1S$y45K9w+L88^4< ztU(vOL7_gM$rWaD`#fP2F1^;LG7H^0ee9KCUr2 z$Y?lKU=_|^NjICvzY0w?ca6ml2^xL3#prXpg;d?Z<<>CTujy;eA%ZT2?6g9xWA zt*-Det-H&UXXz ztm*g7+2Bfq)lYM>7^X8p!j|ow}nt-_2$;+n`i#wcwW{c;% zGZ&@~cN$Cq&VVt&7iF#0n6IXFkLKu4ToV$beEq|L>hKc|BgBJXw$wMKrw;YUbzkv? z+PXrFy^fCFptyvVv-Y@3*Eh;y6nNG zp)9NCOPwV%V7n>SI^M1gNeOJOU107VZ=N%$_3ntsu=m!+n#X(|l@Jwj8BSM>XK$EX z&>uYIZjXwr_l>4UA8{_!4fbESMSa=QYY5b~Ct0ufrd-LU^GO~0k)+9{F-?LHeZXOE zopjG@w_cu@)9f-vHQ6FA6dVs01WQ=J=ek9GhZFO>HHAIS=(9QA*dEVTsv*ADO=~FfX+2Oi6cKM^x}v!TH(^DOO$4`i{6;&+Q9}i;1r5 zwT#$ZK3(=no4dJ0Fil-)UXb*9sj)M+>#|+w7tSs=dOHm+i%u`ZHeM@gK7PBdU!$)M zUR>`C)~S~7s*eqy>ME`u&G|xY%kT`_4rOK?yKt*eojm4DFjN^*RhGf(vJPk3__?Ht zSElS1S77wO!L;07cUWD_+|R7~Gv(fsnXde+AEm51JTNQDx1l)e@W7)zua%p9U&9!;Ei$iwW1BVNDnInWQlV`GYzoEERuj|nj z4K$3;?K!&0(yDh{?CYqooorduXs`;M5nWlmhPI%LO|y%u8gpZHO?5>n-It@UnS+|z z7G~}m)ujY9g<5Nzwq&MwSy(Rw>6=nb+QuV~TRw7(#ZR4c8MDWn zKKGpH4|Go*sWlb`oD6W=m%VOrBpj{FP8w>kEZyg}#MgP(o;jPBut&4xcxYTxn>}Ho zx1q#mujx+fPU`Mn+i|Jc= z!8OrC{ZAf0klS;M@T%|8$X0K?FKVe!d1bj*I8`nj&*;;eYl<5+#*Bk0OLu&c^VkPL zNzT);_U8GQCoZ_3+dLHHobPE^TXiAMnPsTDv^MjVzs`KvR9Y3_#RoeDDRWP{viGNWgEj+zZqC;tgO&{bmylj8HX#Xu7#ah9rt=*n(ye( z2VS}(WM@Kp;X45%r(fG_iTwD^y#WvY{;E>A5p!BXU1zyCq=Be@wpi zY<{t4dx>z=To&56^#@Z2!-cu^pFF<){;c2R9=fVj*X~__st64v?6E6h_1M5e&?qv^J});zHI+t=Pw)g ztvTk{aQm`#LH~7fL&S6Yz9^44HuO#B+l%6oI@XsiJlvcSHgqlgKxt%;cSN1h;4AK3 ze^dFPl!Ly&1)g^&*Cl|ra><8B*0uIJG+XW) z9UC}qE7v*?UU_Yw)01#9apCqOt1@ew&BM#;tleKNv3K}Bdo=eQ@8D0@-(LO64>o_d zY3tn^zTfoh9Xa zT|;X>GCcgV`*%4i)|HpNGi&UwAJ5M1ocBUfMN{gZ?g~DV+wDmn>zW9NF`SGUTl~uH zxxy!^^j8f& zlV|y-N7m$Au2$I^GK$ZhKle<+JNoL^n%|923Lopx4|YA!(ADwXJ#}UE-*Ud2<;uuB zBb*xe_2omIHhXsShvj)2zyH^cdvsx&?T6OQdgdlqV4}zTR>V*Djdtp%@=UL#KUlM~ zs5d9zV(PAf_KLP`w+WriYerxF@!s>_Ig$|lo-q5aHv`jm$CMv-#Vx7d8+ONf$6Y@k zSXELP6}(mbu&dUjFW7zhar?mUBktY2%y261V&N%6g3z74G3ovn7sTk^n)|@35xzK+ zZfHyS?55tAG=-GQ&9HPZ#IvlHXHI=vqYfLgQr4+YYR))Eh^q0p*>;Gn|$lZ zoxbPZt$o6Gdc;)PbG!YLl8q&Bn0G)s|1vJl5#f?@v9^-aK#R=4%7l+U{BXBLlkL z*-KxK>(mvy#;Xgf9a-*OzWd_;V(qF3+!*OwqTgvdv}VC;QSqI=g>{z_BhMM;9B%#Y z)hktnS#3k@c0*ie??_C5vANfH?}OC+cK@tNHQYFKamU z>_~NcX{XO}sW|%Oz(v;*n?`dyAKUNlIX#@;lJBascjcX(jI}wPt&aA>l*4-0lqIg! z;*9EyXfAJSO*Xa_e_&qyUQSr8CDqq_{I$#f6Q3JaBk1er3fVgh;hB}Hr#By2n%Uj% z$=kKqdnvSh^rh(Ue`UISExx<+=_Brz?9^Rp@yB)HW3Ab9-*A)gN;5>7Tqf z@M^g(!neJ2#q+`6uQVM`hw zHCX4_q$jIeFXVm*ff;Vabj)Wy1bhz z!yfuz#NtX5v>gM9zJM;z%>gehvMhbixy<(a^4VY5GOJEMY2Bsswf*SnA5DF1Q#(3F z3o36pTz;uxd5>3!J`v@Dw&&37M%&GQh*^j?+@|{{2MmUfg>|m%^IcCne?8Zf zQ23_q+&79(jO_oGuW>R;2#){s?5%MDCwr|v-y`qU<~;IVkg081jn&;Ie5>nJZ=SBs zp;0COVO{G0Om;Zsxa$|0akY70-uZD_T$9ipIHXRh1zz*Gps6nLw&`x$;#;xP^YDc&wjXZPUk$tEZ*#_vlx0;Kl7rv<%f?ebdUs*U z8^OgPH6?#`lpjsD{pl`8U32){cmL~y`n#-O^~`BWs`otkH^K9GrRCHQH=Bl%!>$~@ zIixfDkAK;JY;9#+s(MrOQ}3o8er&U6<@v@RzC3#CXiI?Yc=@%atP@MC)wi9iDX(t) z-J2oS$b;$Tp1Mar%=UI=c^d*|pE50JIo$EHk+;?yE8CS5(|J5KwW+9S&o>+gQ`bMO z-xhhHY$)=xdD^R?T}yv|tH+ePyRCTEQRn=@u4qkTZ2sRC&3pNm>k7Z~R@w(Id^LCf zkr!KQee<>c?ZH`& zPH)F;zyC$eiSSg%FV=N*6>pkl)Wuxxo4x*C+fHwVr^#i^)tx=~;+dA4{+fO7srSmh z_1HJ!PR|~yiCNITeR;%LPv`glde1gt=|D%r>hO2M)@&^6+jmF*wm07rY-#(#DxP`l zyxu5u*~6NfDvlI+JFZ$*?2I2W#r^rA$laxHL_Ftt%e^3fOSlWLwMSmNn%y(3 zPd{mid;4$a|8&o}1+~pE>ghG7)LVpv!!cRgEGzb8{o_BnKm7Hs%Vk^Bmo~O^fAcSQ z4+Lx2vdX>do~D-K zgO49*OBhV{b$iAucH~x;WSI&O$EYJULk-H^p+j3h^Ut9K^-Myu4LPBfXO|yO;Q>Jb% z{9r-&L}i8hQsKlKPiVH!&fcM3akbi{Yx}<+>|YQceP$&4_1C@6%&r*UN^!}df)_b+wtn>Rk> zEUO*Ptv7}1fS$X5mbcjf*N>}9EbpzUyKR@wd5ikD&o(xsXYWjiZFH}B@xjO~=8+Ot zefb{Os>@emgHJfFg$hyCCbcKjYT1`)`t130yDECFCXagrYgOUZt{?xsc6IY)-uZ!n zNB?XOvX0d|x`XB)c4lg0_h%iQSMrmx*e`B!xt(dgGjZ^!@Oid5(8V&n|1Q^){`sy|2^U^P$7~r$3ng80OB`bqcLdy%Tde zI(w?4*_PZF)#tqQV11iy)Lt8X<+hsOs~v$+<5{(X0ZVjm6*%+b|6F=@p6z_2u*?(x zuJi33?G-;=_~0&Qqw{|*z7}!calv>hC)jKLG}Dq?e>u!F%XKlr6P3Iv(v;Dyt?{kY zp1WwVrybRJX0_O|e}3CNn}thFziaDyKW~oB_ecA4$Ahc8zI&qh&sjmbw3@!b{OH5J z*lV}cv>#qu_CLbxs+?Q?HfoyRbvdjjF{-=8dH=qp&F}xP+Zo?JDm?j2$N#O#t99Cf zb-tlX(RTfTkfeDVs-JJ){;iO`O$FiJy!9bv@2#tCOs{yWZFzrKe`Ed`Te|JDv2^d0 z`9fjeksoYted#S%ddVMCOZUfmJV`y?)C19z8BM{#_3>wydD>m6?%-~dYRY;sr>84T z+jB|x;77Ago_%jubNEP4h4*mJN|$9@`ijcIdk*?M72OBC`B8nsiDZ5G3Foe@Xa83S zTKBQg6E;@XzDHOcc(t-LttQ@kq#!uCX~W$mr!EJ0tXbWA?15SKH+AW8LnlLr%3K$9 zO{J^;?CL08Ec`02bf_ostBG5j?L)z)Z0F9RD-jReezV1tTB)~}?mu2?)W&~g%kX+G z#NPX6K&;Pta(=tD<;vq*<9jdVMEcs#KHl8iw$w4Q^6l|SU142Wz` zt&cvJGOMFD-)+>MAHT=-e%PEdtIzCN-P4&maOOVYt(y`Ks#hMcor@^0^)x^7VM_kH zw$vYeaUCk71ix|XAH&Xf{&Lp#HQB9Z!5Uvu+#1-JeXY9b?=^Kb!UqNYkP~3 zoK@~eYU_U1^}g$_jX$#gcxd&|{mbkgz{f>Li?+m$VyS?HSN1)l%;_{W-w|C{ATo_%q{%5mxetL&%-Zn?@`DMpO zOtwZloXhR*y5}#Mg#&eV6_=;le6r@j_2yDNA5j;YF?jpym|E-w)x#YPja_v*cSd_Y2J2SbXS(} zSz1Na$BXX$voX0L&(xr^I4?Z0xBbr6-XL(piVs`$QTJ89d+$)x(6&cC$Ch4Qzxt7l zA3t`&5*5|;RZwF2pLO@W7wI@?n-{e2%53wjqhCGjy6lP831Riu45mlk`D$*YAlN@1 zD>enZmG}70@iX?U{+P;4-_YH=&sH2?>g*P}*0i08R;75>KmPaoC%4Qtd7766{dRW6 zK}&P?cz2YxB}3D`_1W-E*-l&X3*V0G?(WlC?t16kuYYk<$uHs-6g)lo?1kWSaox_c z({m4|jvRTm=EElfw?+4*S%uA}iax{Tnr}}YJ9}?WR(*pbdB;NQq2#k`+`HPJSnzzL z+xFNS+AnXPHB!}HVjbMO>_kDyMxo}3i!0u_bW^bDRSk!O-M$n7SrLbE*Og_D3W% z%^9xrJ?q^!s!dDVHEKv+c7JJkQ}eQ_;ea_8L;8B7UFnkti^99VNXa%G8;KL5O~+fm zzjfg|k4#m5chA<3&-CqF<#aE3>AuL#g)Wc!+QOFe7he(HfOGQSt=b)MOX#It`DMqQ zS;Ko47*_sqf92k|y^VJX_G7iHXKgmsJ+mWwXHoJV2b?u;fB4M79DT}#=E0|eUupc= zM=$L9IDUD|2R5PiJL@C6gr|RNTk=-)%GSdHxhJ0f)R}nnp3df=fSdp9DM~xzvW%4Z zo?e|3cx>ZqwaUtRu$)le^0s8|v>1 zI%L(yY6ee*1h3wEV4ihc=r&s0107p(N_uwm-k$BMU;n&$&zy^ap{ntkY;SOPRGs$m zPaL~FrO7?VZ8>LB&rM~Fc3dot{P^L67ju@LJhF1{t(|RMOVdy96Ygslgmz;_v(eKw zziTX^G0K$?_Llw5rc1r6TU`3Ka^22>$Ifs2?a|Lyh4t^#XB#tr8#XT_t}^XJe97Kq zr!QJNUSrFNs6HO@y>l1a@2u7(m|y=v=;Ob1U-l*$DsQV<823_%&3fLObFEvjX{%Oy zcBMDon)*fmg*^!h(PmezJI1rA`e)FfEn$t_|l}j$R+#0Z_@u~h@ zYns9?j>JTV{p!~5?bttfugmuO*oKy>+VlvYuGf=jt-ZSDWX<9gfBNDDbCr3=y`@KL zgoid*;yOzAmv3|=RmZqpOS<=#Po2#@6BcLPpW=)bPRvWIZp`szR$q&(II?d+cj?|B z+oikfPMA}y^=-w$jg3G4N9)q@{NLop&HHJ5j>ghI)E}1l)ks)Ucg@=U!7+zt83#gj zX@3hcKmXdkpV(f`&8iTM@J%PQ__(pfsQvtP-`JCoD#>8+7HAlA08-F6c&SC893(Bn?Oi%Xx>F(U) zV^`W9v%h!v=e9qkUR%%;crq}_dZ8^X`=E1drTXPrFCIBL68Pe`Z3!c}5wGPh`;VUp zzn`=G{QhOyUF9mT?s!IU{O;C2)K;hU2RAO>t+}ahs3m*ONBe#lbzHbqIQu{DPyMPR zaWpjG)6CmyJ2b6pB7ZY^cYokjbHI*(pS+SiFp;a zuL$4mYWLp#is2_OFCFgf_ug~yY-zo3-ZsyFAK#`gJ-otjOml6)_NBwks=V`oOLjEg z7WTvcT=cp_@H$g0yB<5&erjdxvG|rt&wqOOuYaoi?*Y%YTXT=?THTT};clN>-}3Z< zA*=4IRU;qTp8u`ITYSQKG zaq?_}M{t-oF6%ILlxdEJ$90^1?&lQ?H;pxyMh5OMEbeafR`kDm+pWi%=k2-6x6S!{ zcWvUihFepcn$v3X`%~XpnfBNCc?X158`4bO{khqjbiO>ncV#TuQ0;m0t+c}Jrhz+} z12;MI{I`{>Vl&yMK=v(B7bK9v8*=xm{XB1qR#^x=1# z_f%BdO&3zkr;|M?iEZ+XXQ^5xx*w=dRn}Of!d&lw6EB!0aull?`F-xd#pC@el)%x_X@iz;W z?RoOm{QhHib%yt(d8NO}Fn$%6 zH#|~P=6V0AoR>pO`i6vyPikLDS`cH9MUNWpCP3ca^38*SC6fm*%^?ZFzgc*3@(l=UoZ@GI7P`-UTt2 zg;N=^?xEwik2^NI9;x;e?6#>)Va965te$F>aaqfr<<{1gsb#(cI$d6Us@n?_+b+y+ zAMzC)ObI@p*V8zVWn6lAL*aZO_>-=mf9$mR7F`*>)W526VkFSmm3k>Et^pEvBqV4%3@6E|FZEk!x(9qyDeznHX(>5_{thxEOdrvvy>pNCo z?(UiE3b%EBnN;+_igxFkPltt&q?|WRdLgeKPNG?SU6%O1M!Tu6xJIxvJ5CjpY*K6b zGvSKS%Q=C0)q^D?t+A&wt#$g;4;RcIJzRgAFtO_go|o?kb6=WVt$rbQ_@RLRMks_GZ(h?ulWNay}NsZY#x^&2u`?u1e z1?!V?>w~?~TT8zC>4Cuhh(Fy?_Xpc6Nps$RO#S8Gepj?!*K|vJU)$;>&$Qk@=RY4A zig*34aK(Zr9@&^v{z{H1(0t&+^9`=>M(gq1M16bw=7j(AbWZ%pu}DYteP@KTB|~3k z#*bVbKX`Yl`HzBWnXoP9=8I>A6+3U+VgLVld-G^}va7zY?of5dH}u>sshg%Hq$Uy? zS`o5A3#3>AWTAvafDtTVi$Nd^B1>Qf2eV`wY=T)%;^4rFV+BY=#BzviEd(*b3(bxYm-8{Ty1Tle0|=d(}U``+)ThUAaL_3o=Wb%uTR{+@mI8S2!jm;bYe z-hAI5z5mizWrrspc~*9*c?XM^zV}C-^)FxYtl#b5aQxH^YBo^hZAPbN|yjKKykzjXwXBKfdj`AK5(n;9orZYu}UK^K&nL zs{aQ=?}c@(;vI>Z-3%9p8A>B zE&k2sjUW2xXz`{$x#^GB_rBtXZoB86d;iPD_w~!G|N6z*=4W2|#rK`w_Gq4c<=gH) zd*JK7`j=kt>!a@;ZGP+S=fCf!&%FG$cYN;4`&sL=%?Drhz*jx=fm@&d=}Wg>eZ%T+ z-1qe7-1F;i|CaB0=Uczy&X1HIdFlQqp7rjpc%uKT_qOl&+|%FrHP8LoxBU9z^wz)s zckchrKYI1?@7~t@qUE&w?Qgs54|waSyz^ND-~5WV{@KBOFZ#9hu>ZR6 zfA7aG{dD`@{tG_v@BZo!e8=)T-@AX~qxqF*f9NZgPh5KRYoGU9v)e!Ryw454{zHHI z=u4jY3*YdJci#D#>5FcA|6_N&=-=NoeZ^=0;Qnv;&p!L$zq;ckPy6KQv*ykJ>;7-L zr#kz`KYsPWmp}3FAAQql_M)@5-|)QC{Ps^g>ycl3!#y8(!TT3aeb<+M$M3)Edp~l^ zJHB&$`9q)lre_Y`e*gDfe&&DGf6rV0U^4yt<+~pky!xGuJCC1#^k{bVCHdv|4f5BV z{JT5*pSz*|*}FJBSibx>zUOCN`grm|JgGy{q!5|edYttzyGEhH7VqC1 z-ueF5zIFdczwwJ-{EX9I?!RIBzkb~V!#f}O*FQe|wZHoBpY@#IzxkHm{-)o#^_4&V ztN(TW^v^wg^U%lNIR4d_KJ8s!{Tp{Z_c#9f{Grjk#ly4!`3wJ~`K-<#-uu{<*Sz!K z^cC-U?7#iR@ukVv=YRO@xBb);@A$GSuleOKIsM%C{mQ{B-gD*PDL23KdFA_m{-?6n z{z`uD2cC1w@AaPh%>V8`%3k~KU;T;y<#p>nz2jZ~_ucW)$MWnI z<-1S6{?EVk@~{2P4;~ymW$ztdl6~rxm*4ddkN>yR|GfY3P4DW5zY?!n97Hk|(CKR9^Z4}Qg){@xu2{rA22>tFZ0Z~5te__pHC!%zPo zU-!))`~4Rk-SWHt$)Df#@A$^|?ti@h zZQ1|uW&h_-9{tjH|9STDdk?O>VE%_6`pL)M{fg$VziR%jpZGxez`-5w`i0;6gZtk1 zvOC{<`#tZT&c5aSUz)$;#rY$*Pw#x>v7586|KpG6!iI{N9g0_RTlG|4Me( zO&@vYpWOVFzxj$c|D!wJaW?tq|8!dHADn*pTQ+a|_MiX$ci&w0pY!{F+MzefCfNlm27B-u~IQJ~nvSCD*gD)ad47GRV3g zeD&iGj_+GNK0VyKTHdzzaF#vo_|a!P`10Sm{q}GBiI{F|T6vbQt+ zeenD&d+DtCmVEzJf9K7A_ea0`jo*Lwt5_NP{Oz*PI_Yjt-6tW%Ytv7DL;$BR_+=Np zyy0(q(i#8hbbWql0dkx)^faNLkr&9HQkuBMOeDT=YOLKUtHYtBJ58-I-XgsPI^ZSj8km!2 zZqFq73q$KtP*-b>rJ`r$CSU`nDw|K%oz2R(cBtr$O{1}xZg`!&`ruPG(=5lgCUJZ+ z-)}6@N?5@Uy=+y@_V`NGsj8M0e^={pDt$Vo8@4v!RX-7F_!b+%qO$w*w*JNLKtya& zl_^@|#SxB(BVBX5n2Wh>kGgcZHCJ9NF@RTgl0$s;ssGc(trtqZ;Q|1t3h#SIl1S!8 zs*#so+f+4?tTCT$x+odej}oX0VSRPbT{qdf1|Ov0-H+Krt4_HQNGa6k#{5(Jdy8hl z*CHy>YZJ9mwW=&%T^hI73nBumIr%T%wVNFj)M?MjFu*-^A(gL8l4G!5}q%eW-q?Gos>nk@+lQ8R2Z z@nqGE@Wh*g#DEx@Z{WGVVbpSP&l=@%Ctp%O1!(s(r%Ac#uK^$w^fSG)!!=k|(^;!Q zks_;+$@;^0owRb~OsQoaOnE=swy9WLT68O3!6DErWeV2VP$0S4KY_QL17w5z;Du3B zU}!`*VFpQ5%J>B(B$bGahA*BH=hh=&@f`p9Aa5!dJaN`qX^0B1DzqZ5TRMP+^~RUX zBil$H#3d4?Px-`$ttkm}4*58*t_-qOQUv872#$mXqxr-QD@|3l`M?(+wHxaeK}29r zhjN0M%m6Lp;}?&t=Qk|S98;So~`AWcWzWgLASWL zRsHH*4GlP@$j`f|CxGCK^(OKN2Z3^*H7*S%op}o)VzGrX6fet`Cqp3FeCUgg*frhw zs5;eOIcdUMi%Hfd`%mp3AFf(>5D=JH&cunx5>-uGn?`%`*tDqDsp^xzf>FZ2Nfa1J zoZ;ghiaVh~Sn8Ru4~bwDVjh^-fU8HP*d`CgR&#$%W}CBt{qB6HV~xqplZIRJDqt z(AKKqb!JKV%s7%ay$|RVBy!~v!KSkk#XYB5ZqqfECwnL_1~Nbt7LkenR(U*JRn^Dt z;9VDBM9WmA$Sy^ZoyO-Ii@jMsS++&ol<6$*W)M6i6_1m54(E+3XXnt)w3hJap(CPBqrlQJ5lqjR6r_) zDM8)Wt=8#LvxB5n)I*aIu;#-^T*;=E2VXNbRE0G}PU6oK+k{F~%p*}qnnI0f>0p+V z?(0n+6-G0Vz~qNlBjdxQQZRn{*D1jiE|4N!|0A$ff!4zh?wF&A7AJel=Gxa(1(TFe z3^3J~>T{pD=_o7Vl?qSY^PugtQ>SeH*7x6YrB9&{J?e8a8%;7WHCMHsYnU~ZlCM>v zdRF7mbt3p3b12@xBEg19!c zjgmUL3k6g{g48!oZJPhZd_gyx)>XDJ(}GP>l2@=3Tt_5M)kmLpWq(wxKpdt)i!VgYW>|ll z_5^#X$s*I!4bKUg5C=z=ZIH>>7t?AVL$=b9`BYPT&7Z_5H2p3RDGYCh^YIu zSFma>LKVsjtptd*Bw)iM;5Ck#&tKH|IuFU$QJ@p(Y;j8v3O6v>n$p;7OUvVfS+UF+ zjvEA`VjuvVH}~Ikx%=Q#PWk}aqLp{7qoE5h>Zny?{^wtG+*{BoG7-ABp+nG^&)M)@ zcoR7wQrq~N@uG~eUKpDQRI~XpOeoe@rhEt-)1I4;{70XKM*d-LY-Li`Az}!cPBfP` zT&b8t7taHM(+&F?sHxBiS;7eW8c?dElj#ziv_VNKXlNBt;yO(@fsn&QmXZfFlOvi@ zeX~mkvwYd!v@p`nc2ONe4LD~$XPMvpl<#-sj8IurwIALrp zCl#Mx5P55O;94!0@+mvJJWwbbQ|dX0uG{M;&T{gKP89JdJX#U;m2}pA6O&f8si9G1 ziPR`5F1na%et_5D+llMwzo*-%C4v>?l3yeUg0&|k2;tayCSZeu1gBjvJdq{1B3BIB z>KGYXf|cbAd|@_fEs?6_2cP=HaNGrJRXAVf>$dt4bvOYMbrJFApSbI2Fe}y#zOI)D z(0^;KChHtPEg~%|tu~+Zf(g5n+vx~eGFv8Dg8!0oe z)MG0v5`{8_p;LI}w$_7Jls7_hBidm}jlm7Qn@~O@+vYQfV)Dn1Y7n-{fKs><$w()< z9-dSGC~jq6M5y%)eynR1GYB!91V;`6S0B6k%5dDF8dJ^7D>qDwvOt4U!cb2lNf>u_ z>1?=cF5FnjTWc?LnoIyP|L08%BrpUL4tZ2herzU3WNE07#BvfaUtd{tX(1D$!U?s+ zH)nE8(CXk`yBH`2On7l6Lcl>`ZSAI-02OSUNQYuYRQxP%)0u^dy+nno(bV6g4oWv@ zrnV>k0u#Kea{l>(jU$?QG8Hl*;~4ANhrj5`-lVe(qlm<_$^N2K=5zxB2QlO@3ocaW zPwq`xC6VG7$c;IM0)lay&fzZ+FtYH%5+se=f~eBgb=@?eX?Zzqy5v)Xb`!NLLSf95 zQNq%EqFf;*=y60T;quCdH80&*(h||kI40NZiB6V1oMSd=R;;FaHrB^CEegJTv90dJ zi7dr|S)t`e?>ZXJfZH~SgR`>I5gkwYNE@V83`1lnn)HYzqGW4$Xo->lU8}0{<<+uF zPk}CCAeq!Fi4ZhQf8$Pg8Ql3@`u&IBaTBfZgN%}bQKM8l7> zj<|s+}31q{pL)p{4=>67)ht+q_GtqHE3>L@)|VWZ|y(I5rSidd4KX zIC1fpY;Iz*W;AYMg4p5L=F0wxfZX0XXj@GX_UiG?r-Nyy6g{QIYGx-{v1qHH>CoSH zGAY>RlQ++ig7|18veIu4#WOCDHfJNJ_M;XuEe7izCNh)ufV4K#GNO=uZ7^#3}Q(DG1X;;Efi9FHD*Z4{=!T&!DEf4HVv^9fSk=+#Uw^D z7&dQAEEKa#kMz(q^_W2-)CG@U02F81E@lFzM6nB+Rs1S|TdNgZAPe@&`4N7667|anF zT*)%y3xBKSe7Q+rnp9RiduS%$T4(KJF^BGyCkIP9H!4k1y3GRztz~c3aZ;Wm;hC+D z_RBT)kyrsI83bg)_DD83DyD(96%T(ePF@FK2rZro(rj85lA+$J%CIOUxJu+i(1ZKB zZz|*R&TI+u7HsguxS>ruf*j<5BLMLde-xr+5rf(UbPZUPf$dl%Fb{zQnZPzh;@)*(`2tI$m>xBHs43;2dh%N+Xly`(d{k4y;L(Fy=Rv_Z=|O-fRL0{F zPw&FRj0IGh5NPL&?fL#B>Ik3u#RFU!!o$c3U`T|AljGTGqc>xxOKr48)B1dS@2tO| zI@0@r3XCaeRUYrHR!u((pf42y=3yVpG5_T4ixsodqz?Ew`FPq$#N<#BIif1F9o?q2 zo;8`Bqqm^$$yI2D@qey<}mMnatV~-|95TQ|pYc7c&Rgba@g{h9`w(d!xTkCZ`J!p4VN0MT4^G@nE&$p=RhU8QUMGK(gwI$t}nB5}gdm{LHGv&kx+h z)AEMW0!!7%*VAUfM?RdDk5Yp*f5BN?xeZN;t_`fk0iyJpnMdG3$6`3mh?F>#MX9N-aLV%pA3NY& z9`!eT#54Mt)$!FkPFpSJcrbOfMkQFN*3{q?kB~J4sG(BAXk4<*X9nG~9z8amGl^zo zK|&D zySZpGA%_q_m{WvthjIp*gotodTb`J-R^u!$T^hl76KfM;@|L8qMWav^I(ezw9O{-p z@l?NAj82MfnK46P_4c83YK@5#=3OwY)=D0_3MH-yT$R$>_=VFGYYHPK&d4@W2M@uz zBBZ}Gb>j57YNg%Ne?0Hc*99U~*%R|yS;)bd(uP7f6aTxJ3=vu$cd9uH7^!f=R7XKU zd%ctHYSBPPt-a@mwaq#xTU^PUTw~P5O0(v2+A2z>onz@}f*J|sp3Wb9hOBhvF8iSf zy!{sge&AZ6qPihK@B>JFSO}|=PJ0&Sb_=-L zS3SPC<%9Z;NUfUT8{HZGCUx4zMn6&JD)Ub_Gp zs#y<*F*ur3xriOZG1bJQVtd?T&WJ7>UAld~?3MQLLiZvtu(T#7P(*5T(&#K$u$Ukh zOW|8T-0K|WjgrzJb+p-LV4&dY_BouSqCka>vi97nCL3nv_#A6$?qj~gk%m%;CCtyx zqW+qoMxw6s^o^i^nl_H+!zOCV^Jng12+Jd^s3z^S>Xgt+V8va4xkWSPjvO9{YxLpG zHx!y{lq{T3$5syQiJ(*>mE_@$gQBWt<35J3xq4!H%c$zG4%Lnlm?M3P1m-&(McJxq zv>CF+NyQjP4U1p4d6b=9st)V)(ws?3N(+`IM*>i|@(OteHI@eqi7MuLT6P=DR-24` z&}@G*HSP*T3N;3j#upF{Z!kX$E)4U@);iCwF7_JBg0&TyyJ{294rCzamH!|V>4hzV zBp3Zq>A_N%2D6Dg$i?XL9ms`CEeSvF5>hH^L`50K<#5fq)& zi6qF>G_{56DDTecH&L|{plI)^e7H9}&D$jpe&LH~uGF;?z_1~yVl7Z(JW&EL2*!1CZ;b{I`}tu`o0~klvKUlzCih+0$EqjSf(l6u zli&(tpvjpdfr-=3Eoc3_q%3rjr8nV$leVA!(ZU56Nw%aJB*X(dHJc8yd3JJq>vG=R ztZ0s6T!N0KM%jX?!2~C6vU1#Q%`=CLXc|yCbv%FMhT^Pf*>kP?TG8;CA*sBO8)u6| z#^5)u=OL^}T+H$gGZ1UObeVcl5mD2rIAK6>NXWJ=JwX=$!s8c>(JHU5mivuGr@2gZ zpOz3k4I7$rjwA_G&}1e~3>^%GkqJPJC_E{%$kAKWkHQb%xRv{)DU?l;5YR^J!FqAI zIvj60Wz{NEg%41Po(}7|S{GHKIbHOtc)U)nVpOOOZywDL&Ngg)-J&f=yp8i6+teZ% zIxh{}awG#D@+G5nzjQus7v-7>eGGo6Q3MOw>3nN)6*A`hgfh@DM|>??FwGlPQC@BA zFL|t2b@QxEch#0iMNTPFB5_XrOfD*GR2{NPc_!ARE00mAWMgG8CkR!x_zd?#fUuvYyF9+9=NjCQ6ZkrI&>6e$p%#R-Z3wnr&S!Z5t?@XlPdzw%$7;M_1ObONT9 zZFRO{1HaqX;|_8_ljpt>Q80i)G=+?FB!k9m(QnWzK&bR>nyeZ>aYOs8or5QF?T6O` zf|`aHYm{r&f@=gwj5#jgs7*oYLshe8fhnb-iMYfZPa`%WDw4m zhS-6o$VY2A7OE933RuEPIOf3c*B8N>Jo z#H?i`P6-nCkL?F4yW-bS3r0dkZ2g6}^!!G&opZW-&Ou=PHkZaXW+MjUG-iQkkT7-RNhEU( ztCtwUA0NVl%T(+F%B>Boo!j}E7kMgHRscbD>XQ~tQ92?jG9_7sv&JRR)G!KWoPB$z zT^*N)&1sv*PX$n-YXTUFwkgTjE(V?vl=zBlq#}4SSF?+c0@N7dzs8EH7uoSizMRpf zvU-4(11Lj?sBR_r1cbvoFS_ZnuQ!WnUX;8EyLNtgvsr$AeOQi_-!*mG3)5&6IU?KI zwY{mBSw`Y$ZMMA2v6@FZ8YQL_=Id^&taw?*Hqz&>5u6a!N%_>!=@&R)7!!=4oLU~2 zSdtA&+B#e<2i=m{H0F@%1PN7gHrs%&CJ$2f;Cr{fS6d9-ogNaM+C_L0hIFw3RT@5xr zewQO)OhUM?FAhbcULzO*^qq`tTk#U>#K6#sky>T%Vf%;$7^d=zIr6K2r z(NRw8VSm0gKW^@?=S62#<=SO90U$AgWPQLXJQ#vy2%c&*B@b|VC4X%gV9?)=zF>8F zcF-M-7?CU>X+Y2k{6bT|Zg2U~Y zQY<4HSx8$wou0P$*R!I-a4^<#F!nLfp$;)fsEOka1}nI3#?Ft zgV#{72;_7jIHE~Ej3;^urg^+t&Fqf2%7(!Krq&?ty$hC844oW^q-7H@4p^^_r+b~r zJg-hy`Ra@r4wn;!0I6DvU9FpxMbuT5E|k+&ty;6#qgC2s0@&qpuQ{nYXc2uT7b%&R ztZbUK6tV<+=FUm^75>~$*3A#qBnQ|uD9joTBJ*F))?G%qyyg;13=)xKMI%N4nc{|8 z)nK-o@Asb+Ll-x4Ba8 zw{#WJOvcIEL9?S)R2lE1rpO$Q6Z6-X}Z;HQ#6;(tgko6(?MrecG@e}e1V<` zWQeQk%Zxd5F&vR|;8>po_56CleBag=`} zJ3H$S<~#@A%$VG8IoF!iq?S^O>_v1zB$N^-f1#)30C&uWtQd8&+7XppFORCdjAs`- z(Q#R;h-^VkwHP`vEfkmrg0h>iRJQPkvbigRF4smFt2V3pmdh+hg;az20oz&NnM~ zk&p=^vDt^AF)>iX0;Ch0agkwj78#uUdBj!ksD_J)a}q>b&zLV-GYuCyDv;tA81C@g z`UIAQ#T9ssW&(9&i?A6q7H8RhYrg3)e@g=uJt^4a8Y$$*!b0FA&<;!zLkpo6N6o!# zT*BFAvskxVwBFRy6>qgLa#93NLPz?5R5~D3--enRDO=BY2DW0&R5m*4?5!qDVwA2j zN@YPJ>BPS%>JBxvuwgJlV3r8G8<1bs25;!Cr7uXQT+SrZD{Cm|e|= z4U8WT7piK$%!|#kw8!LJMAA`XB7mnrRc#A6lRr?}^CA|H-HQej(aqDd&R{*y3f5`6 zEQX*+FO8HftXVwVhTT!JT5lCe772+{x`1kU=v_@xZ_PG?#*R7suuxElN-3<+h;ssR z3nzZ5SrXm^sd`p-E=Uxh5(w4Nyw_KpCQ1qrQ5)oo`a!V-zaY|i|Kdqj;;Y{s0dn#{-W{-sOV)Ei?8SwO4H z+l1=&p$7FobuMevxrthkK&Cyac)fD4VTpl|#<;}r^k*|m0{HY_Efvo3xB$*I%Ma)v z@DQ8!l2>+wHZ;Ik6{{I-i?>J$F#a4~Y+AyJC--Z{NX^x9JzDmPr5z}mWV`s}8AXt+ z1hnMJ)Nzp)P!U{Uh#+0+=$88snHxj-0gr{@yoqGD)t1M9j*7f%NgIDUNZHkHHdh1QE&@KQiCwO;D|dB zg1y=Y&{G-dqhH9Nb3KJMst>5>nNB>ro-gg;h$aPSFVPsbOQ@-s);ha2o%#?iy4!+D zrXu-oDbp&P&Aa_-QROT&fLef8LquFG}7rjMW6t}T0r@$`&jZ)j*YiW_O z*4`~p#ut}JrF{Uu&y(YVK3AK(O4;7aO}U;_w` zb7Z%7)Q<)I&(`v2-tTX$f^pA<3+iRayH!R(^hfKCzn~eS28&GsQBUuZUdxAtNxhgj1(aferB4jCnSWh{jj8#k%XI?FIks1fifCk>AdEq4olt! zLD=V7fr+=g{8YNd7W$yFN39REh(Wk$k}R259qAqq6DJR@=1y4T<{5VMWX#g(R`aOR ztjJ74)vPww<5j1#S<-)tb}=Mz#vB`J_tSm>NA$hGq6SP1ys?7oMNS6oLQ5aSoz2?4 z#)6`8beO_Zb7Qo?t4Vjy1M2?86qX$bY(cG1(+(t@e66{;LneZJ$q@m&x` zHRufz(D`6Lfz*GgRVtcyYiO#ayhO}Qynq-#9pR>@gBQ(vV?J##KA?@mkT~m$0YNy* zNXr&*0S_)TMzZ=4gRB4EBUY3o$@J4lz{9D?Mu<~5NUB73HNwe>@tt+dk|9&A2sKiF z!IK(cc9?eYH4NT405ZI$l;~f`ES#(9qF@qs#pr3xx^^iNaW<)X1*0P85ku7I{H*58 zx>5O^2h$^XQq4@onSUYCRUgz)*FJ3THp|sw2A+&OQ{!eo19a5sNEJl1K0zf)KQN{y zY-w^eSd{g{ZHQ9FUq(Md0D}uahzRMr1qgeWtQOn_dc;EO>-kcM@)s&u!+f6Zyy^#G zPLNNhXnn|1Jdk1OJUf!eBLb(hVNRODhYH2k6J@*# zQ|l;lMOp!;+f}Y+sS^gE>ZbIFz@RjifkF~UBTXa_Dyvky04N(N0%tj}lag@WN)<80 zFvSRHyo-NGr=|*xUD2y{{t(SbIYb=tMp+}dNuzB_cT!ALV%oEg!iChk_@>c|e%qqW z94rgxcucxlOv;?MD(oQ94>p4UiU|gq5p6oFu%bk*asif*Bs*Z#kW~fS9pO|{H$4Ba ztk$$hb{(R|Mfo7BM+|^ua#s$)q$Gnbj;&JxO+cCG#Xn)pCR!a7s{WI(!GXs)R#bXt zN~nX;kFt7)R!Xy0LmMfMZT*fLW1(PCjFCwY-sWYL;G$72=7?EoN@tU-Td-JFb+uuE zQPa~cW=NANI^e~!7=^UI6oAvgNkcmPEA`r5PuY%fMOGCJYC26BF zODWE}^;TXz-5m#BQ<%w2X@FA_1H8M0^sH?dP zwRF=@kNR%swVKTrS>aL(hG!wARo!SD&ei3%PhmIfry6RM;)d8Ew;d7k3>6JH0}n|g zU}@z~CyhRU(z^!G=>8y*am~g<1-BZ97X(Qikc)8$ueeeS2~rA2lduuIcrskpx$Mqc zK_M4K<-=H)9?LQDqZJTfn{uhCE96I|tdAfsa6wZZ*ffo(X# z7g7Z{GNNdKmkflU^?e8yw69B$lFGS~*bjEWtU`vqg%zWUr+XWG6+eU)JBS5Q9p)P* zA;1kTB1*Wj&5T)RYP;`P(*71KJBr33I@ESCY>ud*QiK&H4;56LbZ_l9o3H{ph!aO> zsch)6noiejBC!Qmol{3-VZ00x;PSOi1 z5i?{DVR8ABJoLk@prNH=Xh>j8^|64+j6jyzihp2R6DG2pL=@6kmT}=EB=nk=OVm>n_m`EaMCgq4gvlh=NxfHM^&(-01VJ91s zsDg1rKrF|CM}x_GB6#Q;&QOUREH za^{dN!Xw@eQmKV;MFKR!Rx$CqCA~pytlS}e)J6yxCo*IwJZ761b5d35OQBBMmH-XW zQ5|Y94giQms-h_aAWJ!QOKDzM7cpldG{Z%+O6?~e<-Y|q<>HTaN+ooX0GSxn4-{B2MAODWL{Q<@4#yN$Qq)$>DRP!sUVPxDA#+d8i{ z@_=XKrpKZ2A{7*BUK2)3=a-m=a&|e1$vKo!izO+gHQm`+lDQ6{-`>Jn88yj#s!L*L<11-iu} zSZW#G#CBqhxRwy@Rip}BIK?$p8EYl{t!HB%KJzHaijW$lNUidiQGE@!_cgc4>75`F zEkVqUkVZMeMd}=oHrR-eh#%EQT*xE@3r7g0hYkg-S@0>Nt$mb;m7Z)bK&lmux?ZP< zOG<1^j*U+rJ2624opU&MIYgc`39Jr{0fp6+BV>x~LIOpLE{1&9MXG|t9rvcGHghTh zbD%RG?%VvaZ=|eSlI9}gHCK_&v={!pgOK);YpO%^NUU-eFY9(;(iAC~q7citcm)n( zCLTdFvh@D?pVdYaCM^LqM-CI=6;^ahW}8zgE~&2;JXc9$^JFiAAK8ds@a94rdk=g& zWI<%-GSn{_K4(t8YeeBbB!nLh+47)~+03R3XI4ty6E!zDRTvJX@*3F^)!PdmwKD~4 zNgx^`QWlzL;_4ORr%0rzDX7L^Ugv|#C_EYJ;jhlBzUu4i;31!+tb~c=4pShN`xF*b z>L?f-4hMLvQT@XR+AQ7QPpn+!{ z2fbrvQe(u0_0aYTj^YPfGAcQbEuR;>1O^bnDCHROBv7TsT`9va*sm#3r?zGh&>cn^ zrOwfde8yk82`d^JW0>@m0fR-!C^c=J{dBIWoT6|TuJHaK->tC#ZKAER(VvuvJvigr z#expQ5^DfHJkJDs=3_1OL^Lvq3~><;2Bct9M*{x1h6L=AMVE{&`hqDDd%Buet5awe zmncmrktPl={KsAGl>$<87tlgGFs`p$0&^1Koze&1QLIMQFL7yxTOZ@6KQC!y7WU5= zdKoCI@EROPuSS6->Hl)E0ZyOeY%OOnLWErji>cJ3z9;Yq+_15^Mk0-^ejD&6EQG5)L(gQ1a2qD!sVx(FcKu47n{DN{vP`B+Gs_8m)l0FmIz zM3J}JSQBeYBmB2d)*352Dop^*vbr=bIZc5ev}3OtsNVZDui zfI{3b2`M}ks_BEE*iyJCC@=iPhoMrfaI`N996FL=Flss3bzLk_CfkA*c z)D;C1&QF<6UXp`zIJQ@VYOhEc9j35LQL=U%Fj}F9=OltcLISciK-|}O644m)9JCYj zghvm`wqjd7QzTO&YUrNWu%DGPQRYoEBz<{E6l*3V84LvM=dDI?X1;R3>P42sJJ}S5 zqt1SZy)lA;h|5|cbEV7Rng%p$OO#Mc-P|k(TPm-Jkghdj!Jy>)MgCru*}BI7jyVIX z5MDKRUQ^^?IATYb)Pn?9b5mg=F89e1!Foa7YR2nwHC0o>FSkj}$Ua#>XO8H*gz7~B zksv5=1NoFr?&vMYZZAYXhk&TaYldv=5PGL>0e-AW+6jfj>?Mf>WdqsN3c{vV6XmBQ z5_fSna=?mxNa%8Ja#%~*$yP|MLl;Mk@PlW{DKax{3JO=kPd|YWZ)*FNGkue%z9!Qn z{RIumi3AoDw+WdDt(DeBnwpoUjHC;JEr2ySJnDqf4JK>3Bqv!eCX8(9e(|{_hC4|b zyFo!O;?=QC#abw{wMkd$mD~{knG+mJ9n4pAiVNl66 z#FwlNui=(}el^%Q&D~?iLqx!Xnpuw#;1{-cA{(`)E`Z)f2_>nZ?R}Cdo%JFgO<)uw zT&9-SWTa1!>L3O?d}gU}_dW_3@TY-CfL9?0P!ZE3BCdwWzgG)oSIS<$pSTJ zX%c^DkArO`3_2lv#5OJwl{LhUOAs(Pgi!4ghbeKeg;Q%6jRG2Dw<;0^L{Di}oO0<#yad=jeWIcS+)AyRUZm|IeL%h4doq+gwoDA8?7>jUi1 z5RTw7&I53pgrq%n;`4Gcm&7BnCF-9R&h=12rcz2LA_)2CD(w0-NwFft*k6(%v_wu;S-zTCb!H)(}>zK$$OAO;Su^UO^ zUIN=(0wA+69cMH1KRL+9rkKo)unR(eSW?5Q?9P_iBoGOSh#P3tH6=hww4ljoJ=7`4 z*VMg8G%iX=9&xX2i^eYI;K@AVq`2T|?r>%KlA&gV`=tN)k`b&3y`d>(jaW?~3BuVl zp=f3hN6KH0!geTAaOc&VAe&<1@4Y<7HBuxcjaW%G2wr60J92e~6yTzV#;ZgOYEpX; zHC4WLPz0CUX-n%$5!_h~(I)GYwRFpg48>mpt%gA&4yo*5@vPmn=Yled06!X_C?9xB zju4Vla4*letxe}%J6DR7@+BwqL56X$f;_mEh=l>OcyNhwmQ`YVR~z*6z{tqpkdKH- zm+L$vCn?Ugj}t^`T+LdfdXO1Ym^GA9(5jW0CZp&bw;r7B*MMWV0o#bOyv-&Y=|-L` zbfVHHisd`?bYGItK_SmPRQTE+CCU)2@e`s@QnJvna0EHCG^5}#Wo?%JD_^o^B2jzR zP}UemLL!G92z?0=5Z35s-~k>w9cv7|<9$N3T34xV^+1pEB~^A&J!!F6PRx2KAik^ zY^vE#p;2^^J}OxxjqIbbH%_7+XL+b^w~k0!vw*fmb3jo>k*XyUNQja$5GHcc(v(*K zmI9=uZiSa{)S2VI{TU@V2tHW2&4Wsw`qJ;Cxh83-9gza2$lt<=J3K8cbJYk?0->ST z8ia z53I473Tl|ix|)%QTq5N*ssaV+b2W|_K}c7Wq<7>>BGaYIg)<#qza}1Yo5o6_81PC8f%>E)vh=2gVC#}#$~DMFeD0Z@XM{_$;ZrzOBy^9^=ziA~)jUmJ zUx^jQRF5E;nBIk7%qW@8$dahAX%|9AA{PMG3H1scsXP9GpZT7bUP@N`kxZB5bSQ7~ z@WBmJ$fzgni`76jqw=RZQs0JcO_`cUxT1>IjeMe)3Ndu1meyQ$zm)&(jDWlfUb5R@ znmEzcnKit|VBSufLe!nxkepkyiloXEv!P0|t2pqm%@S`vry{rEMF^}XJ*2IO$}Y$_ z4cStzJ@5&T2nb=!6LunUBA76Y?6xNc*zDlMu*8wn<&-~0Nz|JrL_@MCwMALp@9sk|td zY~y?G^6NGG~oB zBh#YO>vf4;E@#u}ocWZz)9VkqMB$C4=>#u6kJ9ZA2KW(cKAnuhvsv^8!@a#>kF^8k zY%&_1jVEN+?DU3v2mAYj9xE=F^U3J+^z3ZnI<&ku*grTpJlN}ZnFd-+$7d%eC#R#y z%sjjO{r$rm4iEQ+=CWE$M`x$UCnskHv+SVL8|;zxhJ%A4gy9}O#%E`zCla5`qYqfX z2y3E@i&I)_&6e)yD72)4F>%_F$+IPP7jExJDX3ZQ*fBg z0gIhQFe9|yZ9wmKx;_3lIvrE+!af$1dcmvn;5?u6A@IdwNg_-->9jnU)pk42N!=;Z zf5DBPd-4%46@q>yOF&6MGLn+kZ2lBW@n$_2$Cv- zj&$G)J-T!>Sz!j44`FN)bYT%Xp5lxPwFWpO|@e(rDV#*+gg?uitA|&CJ#=CR5w$AH46Ah#94zu9@T>dQva3bn~eT{@AdS0qK zT%x3EZ~~!gPD%6~b`f?SIfZV4!9N`-mn}&05JeIkrBebdG0V9IEnSm9ig+!6TcJaK zPfzy$q@GV2@fsZKymoK~L!Qo&_2$A6I=vMuuA-Y{_7eZ+ml~NZR03DKpUjnluaC4# zTnF!Ho;w2hI`^6zFZCZ6e-~Aj`<+}m>i?bSJ0NO3y8skHaXfh`MNkw~ipBZbyPfwg zTYNSaQ{8FT4L;@dosP`gtMz zzjs}qaCe^^7tZ1IRR42{Uwuk!$9a3=>M#D&sdk@Zfa?N2I(NW@qXsg;OqhUgAwPH2 zE-$rqBK=WF;jDBKrrBJqXr3&gguc3wK3RLi+Ffz@yXHS`l2;vae%X2B|N2-=-+q+fm6 z-OG3S#Wlp>e)kuS?TKqG?G^|;iOr!5<#sm#+2MOZ;CrZLu@x{HQU$UiB=D zR37K0rHkM8Z(FpM@YY=y^X|TOpjU*XQ;NC^(0}`XO{8mmw^35+I6t|QWaptfUc>jg zyZV;PlmBYpEe_|98E}4VZ_Z)ey6S6OJf*U;M4s$tXdUIekdw#m9>?xiE6X)HvkQzA z+tY>XlSJ6jc{0ZrFch@5oJQz%r>$t)Yl>T+y~O`DXFYfR$^Dm~19DG0N9_!cZ2;HZ zFS&NN*Q*1;+pz0{{?hw8@Gp%Mw1awzcJcnn-QmmWNq)80g^SMkzt)kw>hm^6plbXt zIO-y}=%2jee8HJY@7z}x|LJ$_<(eS%=HhRA7uWh!$9b|Kl3t7%x91*T7@A`LKc9_p z@&CHpYr@h^#IBvSdwbdXUPST9{fu!>Z^BZ0KhsW+zdxmdvbKd>7@pm47 zspCT61?M@no#(mNwHbK#Z0t?uRr0ji-Pb{C60JK~WQ@I-{(eWZhJ!>x=cA(;J z!!oM|TT*kWpJ9;$5vA#F+K~;6+VLTc?6UaU>^bZX1x+4k>VT#(gU{TL9rLCbA9*0T zB#p`UAWc{>A;=1o#HJ*9oiOniPf29nq>PV|yTjTtUYsOZut{tdUo)Ya6RaTQLReW4 z*+uLohBap2mI7!TJVOp=WXp$Jz z*~^dZ`Ctscco4)Cyo=-Tim5pGWUafHxpWPdgC;>8=dWC;fE2LTVeYO5wwl8cdm+U} zyTPVAUd6;AOBae3Yyt>r*rQ13-8I0Mk{YdUtJ!HR$UER}blNR21!T~`7dYKOg0&FB z(O}1EGG`SEnX`um-1Eeg&H=#+{H1k#mC5#zsb{Xuno1IqPb@M59)}Vy^*o3=ewVK^x(BsjCB>-*+jw0tB zcFltqS(rPA9$)(I>QnXHfwWQ6~0! zpH9)*R;NF}@OFmos57T@vkLW~e&j75e@Syaov^2akF2^a_V4Ah(dq%uTQ}`qyN4FS zHgB0zZtiY|ZD|(60UxIx?01^JEvhL7<4&6;S(UQ0M1_}rrzLUnZq6p&y@FzrZEZ}a z;GtH*o&wmZ1;6=(5BE^$@ZK!;hHQ{wRj1Cf`lG;%_=YQtF4-nzMCGz_^F66fugeo6 z^hqPu$a{T?Hq0U)FXGkM$qH-4E<#z>?G7ow%#^5oBjYI&x`lpbi^YsbZf>{&<0ur$ zgb}2Wedd)l+WjH6rop$(S%o$$Cll%ej{#Xih>8q)>@h)|W@l|pL$|=zuuPINA1@{o z1whBxv#f)9P{DXzCEioZhkJfY43*)L<77ITvd0lsy~zu`gFeOHvOW`pK2cRA?ViXy z#v8k#97cn!;VCAc%3-QlBTCin><#@w58qiRp*fyR*n-(+XG6qJpX%VNoJ3{6fk79o zW;Yiemrc(`qgmEPanK)3pt55qdG5)}N6pT#PZq#R{Xp^&Tfew*37hH^-8~>E@*Y)% zP2jSk*J)A=Yznnl&PQiw%T~7&tNtrAPqPk}6cM%|AM}8i2cFez$rHi}Z!i0r+8WM# z-9F!i;u#_e#3u!F9<8!jUz=_8X7llAwC1sFvzpEMEKdQ)JWU6rSX;!-a2@K+Ag`uN zw3rg=@a+-yL2ebjJ(|g83&qISi&>TTFiLLlx8`x|V&winXz!H0kahS3hq7(35*{-P zW?7SpI9<*bV?IjE!(!iTQ_1YDHT!$L)@sh@FuUD?r3!orVa$Wh$+W^4@U)if{ou$3 z5ei4Dwq z88MgEgshynzcK~dZkDSS72n<8XYVHtpY9SoCYB_@n25e`eL(g_4qP%KIqf& zQZaa{+wbwYoaKDFn7MW^+e~K_W`CjCqI=NGp}AsV2u7icWu(cp-J)xOS#&dD4&Qz3 z4!Zr=imlZxd`#Ue$7AHN*~L6+ZLmi0T&|i!6^h0XqXJEuof*qNF%3RWW}6av1|Uxl zrqw?vsLIs2R=?ZLDYeDvn5Whln+BWo0wxU&Rh5sBQ6svs695ZX3am(LtudlZc{n{~ zduF;8=nx+{=;r9Pp?;r&7+4h^EWt9reXz!pn@B(nY2Q7SmRPUJ?5|v$HqW zbGaO|85JA6VT4qU!Ek>MV++%r{*V<3)nYs@eVq`RQ+uWG(P%8Di%kyjRMiCu=@FvW zB%&3DX1P2?>9H9NJ~lU7bq2$OXgye>+TR~i-CZkSsnE)f&{$R|tTVp&y=oMl?qJ~e zSy-iG$D0lab{v|U8Jj?$T6{%<@?5UFLzXBE3JhGk3!i*FWHy;?P@!_OoJ`!A5Szii zr*4m=c_^sx%{ILp`@yTSL$3ilKc4WhMpdXqS+)ACz}Oq)tS)a4C;~orFdHp-8J#w6 zdB*-VEKk5NvH2%<$5x*9qS=CZx>&SAS=SxD7t=G8%|!uJz~!bhXt!CPk<%8T?**IV zlyi32rbD)#jV5eaO&E(RG^IX=vIrfvndNaK&i1jn__Wo4VrCR5G)i!mlc%@FLuZqoz7TbN|&rnm2a!% zWS-kwrjN+0{%$ithm3aX^63ie!xQ>!el}|%glz$xDF+<(x#;!LU**e!XEfNTdb8ba zEoT)f%-Rq7yeLMqNB`W95z#n6b9Qnz#ct5eY*f>;W!~))N;(@1_(VxH0?4;IJGL(p zi#MRz=wX}fB*7lS^;^^>ED-NFEN7!LY1kPUQFg4;dUQH= z+jM#`$O`+eJ89DO!Q?b7Q%sXRnQmix`D_JJ873K;Y^e+89oG8r-Ke={%?=HVol(8{ z6}~A&$DAG!oU!OM&+S07$r(MDcHcfXI#mpN<)xE};{;3^W`S0O3PGpKZaM;M`_>g( zbMywS>Cy4ro(f$*umQIgwg5wqytJfkw2o3=bozU($>V%fwb>yzUNT?{)31$~?`dfIFa z2J|Db7!H9cbM|qsPT!8oG?)4LbVes?oEBL!x> zL&LQ$N8{;gQ_xk5Wf<^^BH5g^`V{(@&OIe%?~$^^x1b4LvMPtd>NL?P8i59_NjaWw zDr!Hr98I0hS@u+EICiq?{Vl=>S z(_qmOB}9{j>0{d!B)7%O@_ylnY&j`Qx|(czf!-HvEsX7A=@a|i^!5jQQI=6aG3cPu zh2yz)cd;PzcE9K$ImPVquuaFt8l~)X=q9nEb%rWXC{woLU{fymlq7?dMQ87@-(9n! zE9>piyY4jrp26B;1mpDAX`8Yo=5RWmWqn2yY%9BI@3X$F+nSw>slXLq7XwC(AM3|v zv~=^by?4{FJD;A;TEjsxpyz{i!7|Q9CB@On2ecz|wx^xa8M4trsmkubAp?u`_+-KW zXFWzot$6KTHkTxAR&)R68;kPvc-Gw8AMWMN<&+}o&M9VIYHHGuG?&X+DW99c;eKyD z;sf%Bw;m$N_;focnTtxq{@Em>{HyE(S4ROYPNp)HMtYO}?%xZ$?LoH{dW-gxU? z(-=w3Y=zs9q?^wWkp*qb*5IaLYcn2KgIk`$N7*LR*=n|OH>VXd9yIxuWm!%}e24q+ z=Ka>{cvN<8ykS5)MAs@ltmhUpoxS~ji>@eD=4?dg9j50CK)UtD9)M3!hqZGKyb;o% z7soWiV!fKM2lC*?gF!YMEn3BJf8Z!~Goy59HkPXms@seGyBCWyx~2VLr*t}HcyQR= zFk~Y+y|y_`|EAeXX*NqtcQHKJhZ8I-3j_HA)|{qnLyrU>l&&{K5n*6G9nG7a!JvVp zO;-F33-);!T^-S4&K#1#q^n$>*A(EOg7yPCXAM+Q)bC>l@r6k*nwKi zFn&tMbFyv@ZrEplicu?uO?KS{jP9USQGqF+n7))GD^Ri6Hy-p*Acnr3=KO481B5Xk(J)!g2?{qM@O2Kp-uZuWdL@PTDngA@syy_n8 zIX7cZGMh~qsVOoI52I)+IGv6${W&T=tpu|#j1U;yWYVOFsaCeecA{uwnA>0&H<>rP zLslo#-|1nIW?&&r7QdnwbZ-3=!4yDP-#lkHf<0(gjp5Mm9MaXH1IYZ0(`&ToXdQit zaCyFW+Ap&1et$Kl8N^&PJE#=(!wE$Oc#{QobjDm!JEyr~ptaYJn#_9??aqAW zWB^?aRMi>1CFRKwzIVgn9%v33^)qT<2*}3~MyOP;=nq=x<^;(Zk<)x*!@8&sImLiM z^H-iu`H&C&p$;8t=C#=UYlW@czj41$&w+2Ov3z-nNEHA44AaGcis8j{#nj4~Ys8Bo zLm=!J9n_L$dhKY8#%tcDWgIlHq0HC7z-rZEkTb{!`#oPeU5+M9*3ms&98a6W!~FrH zLUd+wcE*s$wb1QWho+{=3Z@t7dND6DIhkccDvh0n&1QNwUc|C>g&Z=wOtqUZztjYi z(J5blx`mEg42!0xM+yOPOD9EIBO)VBO1i$HPSLP#-~@$W}Ur`pPFeQQjglWZctKf<|f8tnhRzS zTHS8HF*&(Pd%x#)_!RxHUu@{WFhaxV&Q52i?&Z`eIxJexCXZj9(|yY5fiMO<=;Tvu zAhV)yL9@(|nmMJS-QU}*MvtFV!-F0jH5$($%IW+;k8xjXGdmkG?Zcoc?=kLOom@R@ z*hH5zK6t>`nt4qsBTXYS665g-Lxq~rkoFg+rwgVpG2`gOaF6aIA6v`^L%Uj3Zl=6u z45)htw-jg#Q$dV_r{gu9mL84ad|4b|^)}3r%+X2=RI|Oe-!4zb*>IncEUjg~OW%r5 z!*2Qqd(CC(oaBT-^@dr_g9B>UtjRkP@)zA9wadA&9vv~dc(lJ2y^mRI|A1DKTAUZNv+)eO zfb@LEp2rp17e;e_3ACI{v*BJ}b)?44PEXEOOq{yjL&R_J@W2AvP}`PnN58Zx3?~G(5kVUmo*O$5xdyTEcjvsu?9mvq@hR zjYGqzi3QVDcuy)-+8x0+7~}nef^XH)dzp=x$S-K(Rx=b2%TE7x<9E4eKf6_x?;Q;C z#mN!FeAq;zu~Xo3kYx*H_N64LeKOVbQ* z&@LK!rj(iOnjc@~nH{Z-b6$)N+f5A=4~i;>Ys}H3+f3vPi-J#;&{v=vPCmURvsW1R z4f;jfN_qwxdwu9K>T0e|NA^akLJdAMzNX=(0bN*eTYawX8m95b# z$cxHB=LIEh7Ug`hq^WdJ%ljj!He!yQ@1W6Vf@Da0Z66GMqTf$JQ3aW;w3(-=SWS7b z;*f=rcHjOfBU#G2IcAEW#~gfznCp^xFS?^=NWd6plMk8EV`_nkVH)eRV>e#K0x+zk z-E;oS!K)2cYtZ*01fNfDVVIfy!e~-+oGMWtDhvV71{j933#X$$=G}VCbI{YHA=vP& zgdQ9-B0YA8r?qhc6a&FC4D2+o896|tN#v8Ed$c|XyRt{8At1|=*=NVjbTfI#$Me+9 zd@`MGx>PbZ2x#>ARI9J-03k!C7Ng@RS80MZV}ZRsvsd)$n3tg{@kDA21I)MEnE`#u zmG+qTYxvk4qj@%fr)$JKBsR>M`93BE>*VYwPn-D4k`o7vlNnsI?IrVMyn(b{kLkm; zuwQf%Xcw6Spbq0Xp+}_kV9JZRA;&4qs58ojCUe0w1$z`e-QIFq@fOdp1u15d=rB@S z&?qN3Ah4n0?cdnKCT8W;(*@J3jMm0wlZj~FTw(Y-TeiDAg`g{Wx@-@I_MeL-&jtnu zH}{t#T5P7tfrXCCc*)afp6W10Z66#kBcC-FlasS$`|zMM9WljP{z&U$&S1*}s&RNxw@er;MmEhsLz{BZ5aBIj2OmT*zDRF>f+Q(E2T%iew6cq~uDiKR)R2gaDRq)|>J)AEcYD}2R z_9uZ+!z?CQRD8675fYoo+)!ZV8EeS*LM z&x)x%JTl5alMA4SLY&C3II>DfccxeacWk2jy9`uGA;P@TQPFNQ#fLJ)LdmH(4AiAV zcuPd`rODXe~d39*0asS@GhJF-?P| zkBEr!7^YJR8Cn$Zjthy*fyD50j)MSnBXB<;EjU?3wF#!e0psZULU+0+Y8nd3XN3dc z#RB&o7U5t%fyu~%fSa0xnbPUA;9Q-PD%_y?FwO@|=g1+He#~tWmBi8bG9VFPM1~;l zK}@;~M}5QYIYxG zs7Kg}hgXM!K}X>Ti$LvzMi$~RG2u*)iUza6L5ABFP@w5hKL*qVoa=$L4nq<1XZZ9; zyi!zoV*vQ@bOMfm0|=Fl)N>?7hSnSDf!^u&S)SM!H;_9%GhD|zVoZm^0cjBg%?bSm zmx+gm?wXMPvsBkC={`7!|&V-4}8;PBcNEA@) zD90H9VKxe_#New(f``I)08*k;;@wOU(Wpxtp9!K2_z6U=19(u_-LY;XWM!mcyo$zU zI-ePXu!HXGY^y|xcaF?-{sD-<;)l{x{6NLw8g#MnI8QX_Jn$lZ%t+`bkn+%)bR#m- zZAxEiT2PCK1$rS*L|j}Pd=SC3q~x>=8~Tz{YwACn=~LfdszCP-BneVhi2ro$s* zBJmPo=8ee;WQ3o9P7HGk1_m@An0_$%Am5RKQjg3M8^%mmSY~`C0r`JOws7c&qwzW9 z4Vox&H4R`If?{lx3k;AeDr*$N6&pl-nCl$=1eMTn-+(VRlT$KqKu~0+OyQt1A~R)+ zLpCO-CT5_MK?Vh~gF@pd>x4a{V7^2c0t9b2_eMs?xL{>KSwvew;vw0Pk6`aO^I;P! z;yMDK3Hl~7EjF0fr3a}8)(&^(jmsR)HIQ8(9es&O5ZNGW;ss{N3Aj4Yp@0&QUBEHkxL7ZcM;OR@ z1Ahp1{BtKTV!)F@iL*Y7$DmUHIAb$IU5~>yTo+{|rDZ@Ths+-YJ{G|65V6vIxby#g zW}FA`*pb-q)-6n>4l{yxsziad!JjyQ1TqO`L>3mC$>WX0X9C@2_)x+eCzT{40xTYe z0@U*iFw73<2#<-u%;t8uFfb)hRY7E7)sX8LN)amPP>_frVDPY*cx>m51{oIeBdGy8 zQ3M@_5IzR885Db9An5*>W04l*p)bspFdygNt$fPVCsFz2c;rTWk;A(e;-yxt5?9IL?5DV_fX zdPsLiWr>XmLy2U;l*9}M9?%&b(Bd7gnvp*x1t$XFfF;bQ*cc5h8U(#RE!Bh+3z6UP zmwXl&5CWeC4-Ch)=EY}1;KdA)nw$pK1sUNeH<+0mw*e0%B?pw|AT1S5lTY`{mcRgZ+x~$?v9Gld`SsT7&_7ovdCFfsHn`Jk_`3SfwGKa+Lu$eSBbYzk5u$By;36_}w5~_QMzXYzDNs=zy2~MDkVmkf zKyFP#v|z(?AYn|DTRHmCX9g9X4@a89 zM`EDEa(W?_ha3k^0G&NL3Wzlwmx-wa*MMD;1|1E| zHr{Qk;T|DqUtLX0!jd7V48z}1)UgV8?0asAA(j8;RTZObFl8t_y)A; z38bclbfgIW8{ZEb6TmZCCYUq|r7LeH02IhdT#o>1^eJF4;Y)GqG1z0r)q~+L++(Mw zLTqt6b`_KxLxfV(t?+Cyng!nu1~A+t@)OAl`%PNFh>r^c)q=9dk?G*q!eb+}Kr&=i zEWHa(G0lrAiBZ7siHU-xz+vJPFt5+gBjTKr43iD0r6{~Y3I#8KTl2H%xESgo(s9Uy z25J+duX83ZI3+-R_|-7wqf-QuGvNAzTaZ_O+RFJ2B zSdKLFQ;IXDggcr$*a$}-fyDw8C|WPqqoOc8;e-uzb>UA*1CJIRi88Nj^lFgh4wK}8 z!w3*04jh*SbZ3TO5lcw1bd(r;J6tSK8Zp3lfe(PGC69(;h;cA6B?Hh5b`%?#5Qd-D zWH2=$F%{!1OetV4lqYLe=nXQEk_wvx$S=Gk7S)Y8=3C(6bi@-5;N9A~qga!}LSBg68U&6~N7c<$(?!Oiy~B1e)IQ-r+Z6;xb2o01Ku1AsfMc1J(;W z6ktJjI#mdE8W%_xJR%{&4flCF9g{h=R})z!pLNM=*!*+#QD=z&qL-OgNC` z9icez*+bw(C59#d4Hel4S`cFecsE!_ocAk(^Os=A7@QX_V9h8GtTWJW3{55{1;JEf za7Nk-bUUOV{E8^8rUM}&qQl|z0NLR|CrQU#9{Q|F0Z!n>Wze_5!@?krssx1rfL;N~ zgrO2AB_iyB3`|P{;RdsUKx+f-X=2Tw$%X^ydBPymFh4-Jqa{K}_JZei)X>lFV%U2k zV=>%9^KeSEM_B2JiC{k*7dxyEfK!?qC&OSug~8YH0)yp%#DgPaH1eflOaj)x`#(@s z0LS4Fz~qXFBRm{u#yI{RhrWThkd~5&R%Hd8eu1cUxk31VwLwF53_19J#~6+?T7>0G z4*DPu1J^jxClV}>fu4c}A0C0~1tJ|{1=iMKq41DlI5WYiq6h;h07t^|4YmR$$MJ=L zNA$u9kN3Ez!QG5i!VsBmBgfIvFd69(aUvYymvJ<3Fijk9EcIjBaK;p4W(H8(J zp>#pS#RC&4Ogh|7U`u>}An>{i#5qV*ux}2A_Qb>kvtWV;#pOcQIo1r68$dn?0FZDT zBNt)_n7|9Q1Lio)TBwU|*aSf|B&1_(clMpY7yuXx$PIU>D>5n)XYk;j9oYx?5$~Q! z{DcYy*$y=rLor@c4eu7lf6%y~uz>{;a)6rdFi$8c$@f`vfI@^ifqI0o186JE6O}bn zgkyXGbpg50;QsfC$T(1qaMhu`T8=>gY$wtltP2YSFrGTzC0JBL328XQ$f02IT!8#A z5)(P{i#I+yCMV~*Vb=m{s(dLJCLLDU@dzNDk#l$m4n~fQjp7g@LqTuEXOE9#Fb1@7 zCI`n-48hd#bGbA?=N#F?fIe)vybKKjiiNral;_aASV)vHOLIO^cZWr1iQ*`Z5C>tz zgNFhajlzV8hoK)`35hDgA&`efMaN~2htC|q8{dI`2FQ>E^2O;XE`d)p{cthr4!((q z&J=Egl6Hhh*eihetWYXI8vvE#d&}_SRjKfYd*b4wvt$A!00oBYLIuKOu~XkAf%(H% zfc{AjKxBi3&Cw#GqCJ$65=7Yr&95O}%s?XEdG%RfwNMQma~SYT*36l4tdap>|CvN^ z3A~iRPJEZ>ch1sBz=cu+DBq|~QJG@_7Thf8kot}p0juZ=CMN^lAq{Xr7*fC>Fg+qZ zXQpT`Vi}o_4g^jVzpc_gB&A{71sWoF8(=8sm%K5VVxiFi*rg=-P|HBIz&n_R2*Fc# zEDFHfaO2=%#%9YIgP{rC9u5%{aLBy6=1)w8+T)zc<`h$Bwub&0oh3RPwZPCRWR zd{h?Q@L^Pf_XNlv;fX#56A!qD9I*i8IQ5D9Q$a~Orhd&#g)s%S8;(p6#Ndt{VmK0$ zIxZ5j5~U^qy?&k>Kt4Le6Jba|C_p2@*@fOr*|J1Jw1iy1FsDOc#NHm~@Tef#1Qg&5 zNaj$DVBrbJqYOvQKo$aY_z~ZTS%*f#3L&!5wL@3}0CaD3rmV5iPVO4c?4WQ$m_r@H zN#paOj5wtpEdjkqfr-rw=YezDHGnb3bi6VVb~S__q!p9}U_tPCPMAhSXTfJO+@QyU z*Qo-9I9@kYVx)>6sxr(%7;_!_rYj-_^e!eFm{CIM4k`JWpmjbI%K!x`Ee+!ue%Kok zlO}hjh zxUxJrm#zZKhi#4da4OyZPM!O|o;HV?1Nel=!ue;~=YRkI|5d32V?DDm*1HU2wOGtF zmZilQ7)sb9BsqYV39j=LK>)Fv&aSk$5QFH%0MPIdR5 zX!AqI@jE$A%xl{#hIOTKKQBuwk!q-tMpQ&{%;LzOL@RrgydpQsgKP|s;?HHkM81Y5c6nsWs3(iZY@U&xh;%h5nYcRY7q||2phN)ab~c^ugq}_u0Ob z2LHZ!kv;ivYW`3=E{ZyG-W|pRdvf`;Ko4v#0~#7_%tiETJph^ z($-b>1N&O|v>Vs!zmj%Dvwb4b1gY>ryVXS{25YnOdAdje>|weIqIE`G~O zPivae$d^Cx&Y#~lwLGrHJkc&=4^f3=ygzpuPtO}%$`ZvS zh(p<8<3G3`>t*;O-@c^Ash7-7Y?5`+cOd<4`gr?v_@vCIvXshFBYsL)FLBs>n|{eZ zPVTp#TSdeSS8dVJ+#Bdb$GyLX_w~fOMj5T$mSUeV8DK879VZS67EB6A-aT&A$P znulu9cmVjF!5Zpk`(yB+xs(55oYh~76zXeNwZ>5o*E)AeF^_$4%cvhChkC#FR`Zk) zlk9JU+kN5YIQ^T5T;b1jrk6GTVR_8vfn34d=5aep*03{6LnT`aL!0a-z=6%(YmJ54 zm)a*@K-_h0^jzVW<)3_&-qRSZEw<{UZ^-Cvjj}HUy}@GEolvB|cIbrqR@U>6O4*e< z*Ec-aP=3Xt=x?6j9TT<5Q<=V`gZgWiU)#s3XxUteMqxfTFe<%8Aj~Xm&7<%24aO7K zD$jnsrFv`qZC9|L1PA&{2QP<)S);Y15f>ts8o%*UY`>K`Skd0iZ=oiP)$_Zv@{7Sl ze`h;~R!v{S#!-JQ-PP7LQA?nSX2}d+>Z!ms@E&`#>c&KtN2bY5>XBIJ-r(uu>R{A$ zuVNeg?u^&z?K0l@xpMPSW-rUqT4)KXi^@=EXpMEzzUew1y(B)>Q;~X6dT3Y3r9CyO z=_6hBMQWf~@UC1G%8{A}3~viDQ@crbJWJwgM^|vQblq~*(~htvR8Onr-e6qU+jy7~5mz5lrviF_8fYqM(HWD9s@V}R!m_iMecIIWG)r;7)&pS^%? ziA-8A^_96SI5IHG*DJJJzLxhWC&dSo(+h+K$k}qG%1&EhSkI@mrk}85>ZQL0gz)?j zLhsQWPr;a4p4a9Y|1DqfU?!Q<%4C(2BhjFz={~J(aJ;$2J0)&YbV$QEkimVe=@)MU zy{B#RJg!k@{*+kXC2MVHP~f1-p&yhFefKg>2LA#EiQf9%#$dr3DP0vnE?A_KZxg=E7 z%(|&Z{fKu&j)k>L@TL!24|&R z4*YAz1Z$ZEAy2>MWvreVJA6f1d}M|ZmAW-8R@-FkmK)6<5u1-fYeS{XIrb@|gr|3? zTJqLVGoyfhLAq2i8YrJy%)izL5z5`l80ER_%5L{Ghp>|RQPw+sbmE>sJ^q`P0tdxW z_Jf!v>)AuZZO<#CgE=s5TvE;87hzMwSF)#SfoqSaqw&$(GAxdNVP9s$#d`L$K1gi? z;k=&aM`U%qRIBxE5wG00d5k{ab6nr(6G?ePHH`wE2xF*Nu3Tm*O+tPqGX>9q{%pJyJhv z1>9M}2Efrd-Hv3bb~oR>z-!hXDDfR$gZGQCTl&dRKx^#oCYG{xY$i+QoAu?cOX64S zpNzF>9sCjep*xAcRK4|N_hZ*lzD-7`-FB(a#!y2&)|F`e%YB}HR`-->sMA zZd+f=x>{$7m1DH2)Y7-W_e3@ZSo2#wsFGfVSH(`r53Zh+C0Ibc7Z0t6##hm=^hN4t z5CBuDt=`Q&h{dXc>W0xxOZH9l{1Y{WC8u^sE6A5db&p*aK1X!%?MaGJ8@1-*V0dko zEA6NiA=BBVsGVV{`VrlPp7F10>29YDp{x9(a#K~r_AW`+_pux|5T6 zcU0HuJN*(QnzKB&2sbL~=XgQZog!$1Ily{`{ouc94_))TX-0LsPoS%Hi8hPl`W9mw z-=e};S#5_Z66()dxN_L5(wYQyzS33Ht&B@>s8o>k%xRR*IEv{g*}5p#@;oZaKEn5C zX?&8XVSEzP!OL8dnN?#d!Vl6H?64~oHr_MQ^B`=N>l5v;hFQg^tvD=Fcr(mbi`adu z0mW&r)sRr66)WZ$57h2JEBj|&n=ciEjP34v`Y-a8HOqcXr64gbGd8GP=6q{9)!|F^ ziF*Ffd0#1&O|n-8o||E8E|sJcb~{mwoe!jl6|R-yy45kT+dM*L z#0ytVPZhncl`msyFelH)uUk2T<*24snd-{5v>)45I{1(J8-k0d8Q2l(sqGA-u$!I& z#tRkgACOijSX`Vlu3%5jGQQAt$k?Vv1oxXo!~~ZT{q2O%aCXG7SR47CcQiif>3XD? zrsmk4>_4ndY;ahvh!T1qyK(Rr-z0m!TX+lTqgYP)XK04ilcj2d+;L$$-2G79?;1Uf z-l7Pm19GN+Den|LGNQD6 z7@WuMi^*UQJ88DINm~eQ{HRr%NAkv2PkD@Grg3Tx`s@f^8Uocn>UQW1Nc|&X5hkz> zGLF^LgR-N=2Mt|h`{m|vme7iS&)a$td zY(nUIFpidKgS~sgcCrXl1(ulw#0fsyT4%mj*<{7wI(66>DP~{}$U(#G-DXu;gWqJ^ z!AWJ~cUcX3$XC1C!=ydIoM)a=BUK|R=Nj$0WY^4S7@DE>1Q!Lb&<6dQ@q>Jqkyo~I z?PK9;hJMl5COU{WVvV*~oH7^sMq071rbeew&EPZ&i1~UAw@9>^7x2#}v@+7l2R^ib6U_X_?CsQ0BDh`7L5uQJ^ z^J=1OA>W%_X^HW>$U`rvn#jg(+X*r+ZMR=i5pRSmjuuiR2G4C`H#;GJHZ>{(x7c!{ zC|&W5RjF)qU@ALiY}GID=j@%@gNz-b|EC68CuM%UoY98QvP3AG^+pX7^R-<3Df`B# zV2ltYX^kvP=cUWKVrLRxv1oIDnGnyGI@3

H1)nCFBkj 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


@e%jTK;nR=T3msh1RV=zR7@A>h94L6 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�ay8 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�dhxjS23TJTM zoM5ko0{u)o;jYt|8%3`>jPpN=<3)6f2=q63jJ#kLl?!c) zEaJS>vU%^2?hJO@?l)Ss8Cb@Q5-VR1s_612l<;G&F;M$okMd1ofIErg;pcsduUI#p z67J)l6s^y#ie6?N$wr&mOQlm`tti_0wa1O8(Za7YPG{AcPI9G z+)*hmoEB#{V?BFwVl~t9zpMWflfr2oc4N##P5gD~dynpicDXUO%{qWBSP4F2_s4VN ze)J07j4VgQ^<c`Rer|RV~uh+k)bFHTSRRZ!8y17)V-wtUL z=$wyuPDSKD_FB$@4bZ2LGRZhxaIoX9SLdd zqn@Hq+hJqCI@Bk$GydRPy=xpF&Me#pq%f)bqSNFG?=>s*I(IrwAqo*std1@Wj60Ht zc9%7XYAAdc+SRavX`$YtkMT7!gU@ufFb6)Jkj(#7vfs%6PIe}~c@j^^2s|W~m}RoZ z?w8YIJIraqIL%vG%n0=!^;!4KhEt-lJnx^URzBaABJu$Zv5(RumyT1xF3n@?MBM{p zW~w>Hg}y(ym;N08-34wEvW$Srau32X>7zD;3hGc(<3Xz&yqLB2fOtg}5gpWvxvO5n zW%h!9bAIXL#=cQXn^H2~wdtr7>orzHuWQ!I0}{C(s|v{!@Q)B9(Lqyk%Tk29wi=^D zay#-1w5OZTu#e@@*r__krTcP7pd+-yNhl4}ip8WSt|~k=ZEje3%(l?QKOj-bQG1+f zHb70=nOF@wNIc{ZsPyiBiOs zcy)dud=%L9qwj@EwKD5VmgWOc`QbZHN>jlfGm5hpr~qG?a4pouisL(6fooVEikGn^ z%sY(H4c=jRsWuQ9g!t8~m-uFQ?8%3j|JreTqJtlm+78`}6)rVkP~HKvDd`E%iZ46} z%h@)wDE^aQgAqML+jRUytw?{{hHNlJ4|+SqchpE=7fYmEQKgtC zj~>>Z;|(O6@Feco+tFk>jo4?hoo4Xjy>Qmg?TFlI|ipg|iR-bD4wP!GAG|ZIu5)42*>@)Fm^y3fR5mk- zMx9br1sh4yy+Dnswaf`!U|bo`P7DF6De(=ghp+6O

`LV@#fqeB8Ry#{2#ncE>(D z{%O!lu*$Q?wPh~#j!E5UPn38$ou( zsL%!|$#p@Qb_?_9esjq9dVErSN9V4?gmY7muRFI?nN#HCVg&UH+)z7CfLJF}KnynF zPo$!WloqK!9#*^THkK5E&h%HN;q~?qp2&k$^=*mmkL<_C*mX{&QiV>cK;xA*fO`P+ zj_R2`vd1WZuf81*{@DNU$}eJ_N%w7eRMZuli5JKVs4iLdHX5<726zVgoon_|7-4p> zujgJqL!vNAPU=sRGTK_PMs0X$Kr)}PWE~PEHjb0?|OJ&PYnW8d*gbcX*_Y1lf zHq17(#a&1twiI0l>VDry_uovi{_8HDM&?Pk!VzeZ`RJ8iW-l}0gc46!Dg}ALiht(i z7BVEHd_(MLXjZNFo%(Z?yx?uDk9c7}gqWDkg$y-#7OZuu6Py3_Q|Nmyh>s=sxq|Qp zaq``7(Z7S{c2Yk*p*+Wt{lexYtTS|^-|E7=d{*RDV3W=b*~)VlyY=`)xYF)$ze%{; zkIa)^aBS5uz0#U8{?*NO`HK@%omg=G?{}lt&wt-1isG~K@aMjo?UKIDijyQuUYq%m zIxR;ClF2$!GGPum$yDGswd~BoC*zFF6RNp&qS&axim7^7Y77!5iHivz>PE2IX%ceT z79xhd)|c@?2>47c6E#9)v9OgqNNC_b;*T+ztam+;xB9AFZ=?|t*GgZ*S*x9$7siNJ z>qYfg3tYRnu04Euso6v?R~b8zSBy!pBy70vgbB1AgP{^Rn++tf31x6f-XSk(Q!!O2 zmAmRb!=EC*<^53dV@2eP2Rotdd@GOoz?>MymH+fxJ5;W=t=@8j;)*;NTVVLVmVLd( zYdBLKR3nC&`1C)U;lNA&pD}tyJo6@dZUY;i(^AYg4;qYolxEafA8?xJkX z58@o8jd7vjn}@56ha)~Gi=B0j&<)$hw19fDjn5n-^ij#4IRWt-8W*t{Q zKZI%JRXu|Bh-P({hm9Hib|>>fm@!Xym|99X<+s&ZW1e0{gK&{rWmI@$?+CkWgWazU z;Eba!SI=KZY;vII&m`Mo>2L9C zf>}%Nk|Y#Z~4KCSz1{Sh!=FVH3uMf;G{G~rys zdALE`AlmL>u9$AvVr){Q#1H$N_PYkSM|<7Kvin(?oDa7v`P?d-!=|`ixjB8E*%i{_ zd4GENg_I}ka-T3WoG_fA3P7E<3xZ<4o8&`I+gHU`kGs+F7-42OA*&ce)=~9c7A$G)jO1fsc;=j4dOK-wYVNorAit#3@h~zF9?Ek%L|U!QLFxM$z1>bBEXfoy+nr5pzlz6Y=k{a^wYfh3VE_sF1wlD(o&N4>jnIb|k5RKUJU= zvp3B~yF|+OyjUHf8hwmPc3Axx4Kgb071#KBh#hm#M^`!TdY9Qju5oiTaynqWB{>i$ zt?xLwIHmbn^^z*t?EC^=@|?+MOlOkJrvlnd@LZXfI(*y2LcBuxNv0$|^R4lz_!tvo za+DsbL0SVZdOvj!<|B*NgnOHfe63;)^%-W=%dqErNj@`iN*3l(_n1-720I=))GHE- z*p%pyHpaGK4O$a*$&C?yaY49HvSVG$m1N2%u~zOdp}=@iiurEOtsasa$whluZ9~6& zbxAjN+gGl+f~v@0#1FH|9A|DtjGdrsK8SNpa;;Pbf)$N7E4T)>iTXvNc?M|{Rvvb_q{Yv0I!rE?WsSfKai8&-cgm=l!`5-9_8K_iTG%Q>j$|uS zWQzDm7Lh+(Iga?1r?iPZ3d^O zQ}d+cK*l@d^1bDD8On4IOF5>f^ym+eCwg52?jv$W zIf%_WyP_YAz!4Ml4!b(_H4`TT5+_=V zoyKmGRmQ5>gTKHvdWd!@gO1+`p$fLs)9za&p5Isg?xWJbjnNH&B@a=agFS_=dwW0T zR~yiq-NMiF73On%-_8(rxEQ%gZjh=~iJF;9derz(MvObVhwXOp^iOqFKeTV{6Pgz9 z>5$a}Rq%qQv}xniS)yP0O1efjbKrSV)IW?*oV8gWS0*_ zOb}i2MMw#vCzOm~` z#aSB#aFr>d3NVWIW>*XSVod9lOTZ3(H)T*F?*;5GFgNWb2@gWO5!A*hiDL2d^`j-i%S?D* zKx;f1?BeRY+vu^boeFx9^^wzX1w}>%TS})~^eE2*u|4 zak|;`;L7m^udW(%*w!66ycTIlIQn)$&qX7Vd#gcc7GIrioP#*6jKl`XVgI_6YCZiP z`GoYG>j$$=@7v`@nRDQt_LMR*jA-;%dNd!aTKDK-qClA9X3U?;FZzP1wojZvr@>>pDubE9 z+O1XyF%qkr>nLBy^c2zC)(!+@C3z#{bAf2_-$C=-cTJUR)6&#`RH(t1DY-VWg2#qa zt_+~B;`p3&nAFbQ8rG%~1Ji3OsQl~yz5Gi-cxi0*Lt`jP`?D*CnNz2E0 zdmCNOjf-zYRs0g2NRLGG*Q=bv?qCnuy1k-*s6+S(7j@vC@SlOIuK}XcBRbPcI?>@O zwL_5)tJ&4>EW{3#O@>bBcP|kQ^4aH(_3FxGd3(dz#T-io=0@g>M_f&R@Pi=NPKDKG zvvo+8GB>8Ae30R!MR8fXlTX0AS!FFU7w$fON5|?Jxt70my;vv8ivxvT_89ueJAOcU z{H!)pgdx6}=tH&S6;lpBzMAz~u2R~iy-u=L7#-7#n6iW|PaVCbPR8@?6t;jG#VIPw zS^+bVFi!=QebdjiqJHy*T@lU+yn{`Q43qd~P}a>gbPi73xx%7ZuCJ0A+#no@2k<-h zk|E-hyumXE+CV-SbH-8F*#!;Ils~jva)IAqn&@PD#mZF)q^D8I`20{e zwLLmBaorWM!fG9;;Ch?|ZQ9BOIDdsOg=JzhR`^w8mvF<X+@ zk!mMVp_dtXOu4ItHSM6eZf6m9MoILSjekOt;cdLyx~KLq+E~s#;BIF`W6f-#$~lQb zC7bn15jG$D|Cf0$l^m*#1;{Es#-{OU{3^&*`{N<)1>FhF{FcKrB>QF$=*J-B3~M7+ z4OPx>2~DEzG{;_|Ke2zfH}P4TfEUrCcuaqD9)$daM;~R1vp;qIk zUheQ@rqQMslPSUr+eP)F4g>QQ^fFedH;X%5pZu)P@tdw?yH9=Bcbo(EfkDiwkV&k6 zWre-Wf_s@(!Gk*{WNEFDO!JPurvl&ts|>HnWqCK2g97Y1l}u!^{q7Kc+gDnl+U<-B zHGDC~k$pn8D*i*Oq&Fz`q6xc)+@ws9LRR3ko}4d9yAp94FMp$qMnw3^r?C}|1h&X* z>qMJI)l`b})2^TjsC4p!REcUd=KyNip4aa60Qn+Hbf*TCT$6=y?S^nIC zvis22L}bTzOzaPYLA8ox-8y+0m+j1?U12U*@fmT7#UVD8S*BFt0#rKf#)8)1sEmy2 z)gdRqrUAc}f~L3!>dLBjMmRv1T0m8eFgedZvZa(sEE)U3tKcfT<}cx!=p!mZ$X2;I zjAwtG+TB($%Hd+dlEcc`8c((pxoAi5xSBy&+lGBMRs*xGi3i?S+aHL8H%XDZcN$#f zZf{f#x3IMd4f==nMmCX^)Ub=iT;`*47^~M7ja$|)yqP8DB#1DR6n54db51T>!>`j@ zL;>9j=G3|Plex`jdhVzxyT`sYH*nW5A}!eCS~=I~>o(tm>$=x9Cha)U#6Wc6F-P?gH>1UF8-9sMg7o&aiSMGO+06(;}u`e#4z?Y-*69n9lW=y*c4|{ zT`@P=TVBP=@H4fTtmnGGv$M{4c#=2((^iHurj42-&aklU?W1<(4+EbF+9Ry+_!INN zex$|7$6UpTJ!=GwKC98bXKICete1F4P%n)2Q`7!y{`E8T*-ae?k50Aj#ZwN}={aKx zrw)hhEA_*!A_ifGIn8Y+6jFmY7rM}{!LuUL#bVbTd8d>_-pn4?IoqL=YCW+-l^M%= zM4C-}MHvwYA8668G7B+c9x`je4ShiaqQ=ZoYhZcrVyxvO?W0qp0H_WJE>AXH5DS`lT1uhacx*c4T5LZz(at~I72Q6xY}x`6Y<`dI^W_OEQ<4qLYoxNS|>APFbDbH)@P0CXH(+ zMBAe+g-O)lK4XjMM!ub%iOu|zqkgz}ewV{3&difC`llr}%b56#2++_>Q)-M#a+FF3 z5aP*9)Uh{|_@U4Jeeh@739@C>0KMg&rVgTI@oTKJoW;Cfs%w(#wMMKhbc|-RbjdwXD?`ivEO%~p@TORr!y=%QxnA$kp&dbQPv2cqTMulPOOGRLSxebmR8h|mtR zz^sdPcC-|87-83@kSs;etraky;T_gFbs22@*_!36+*Mq%9mB4zA-saJ$w@v!SK4EC z109B~@gbe$`x6i8+-SNyf^#z3;fMM|yh-X)2Et8F4>MwA;2Y`18)96>6z>Zkc&CYm_+%m~O1PTg81*8588{wFa}Ak*G%W zga7ax!l}ry+6B(d8FV22Ox$%X!rEAKd{enMV>He-=ewO_8z(-pv&K#M4!(*7bfxtK zdZi)e;meFv@zHrSB1hjaZ81@%$;|Ue25lC z4$Uc>#`z%2-a;|e&d~edHoQjJEM`qms$ENE!e{l}c@&PhM!VlEwsX+3Sp`GXA;xJc zh-<6c>@ab)Xl3X>$!4*aVPP^TVn<1w78sw?{nTngS;7pl9?O+S?OL{ht#J^nrY@La ztviaRKMAX3L|?EE-JRmQ{1AcIyZJ~Qvfbn}x}(oQZ|v&x1+Ke#M4IR)HZWgBo2Pii z7Xw6A5iNR}f^f}oh9@p{VD@bXc7jK`(P>a}^hT?oIbjf#=Dv7LBI4}V}Y9Cd!2SA2dT^sbp{?S zulj0CdLDVxxI&M_xi%krCyTjGvW$TE_ax(eCz8CrtLFm|*OYHgopVikNw1ZS@xLR$ z5Vr<{6#-Y0qHfug3z~D#koWcK~xh)$wU#lpVx%YpYpC0r3?l zQ5+hjSzQBw>VIdo)<8fxN&tMHgL)^PrRAFi(3PVW;*2uWbmcnPK+;o36h` zPPJ^Dh}g~DV`pn6{fcn*kyfo2IJlp6w}>A`TWAhvNWObmocXa4u2FkfBvhaqWzzIe zi`0>;FJY7N$9JO{@QCza4e6q|ubhRe&00E_+F~bM156sdOJbMa?`=bO|Dcz(FxBi0 znS=T(-OEduue>ovxI!TxrK=DgTbtGkwIU2LS=0wtj&Y|e;tW=3X`oY@C3!0sJv&8K zrg7$Uh;8m$3Tjuz5T1Xwr{AJRc8tEnGpJ7CGFYJeI2SpSc)%*-I^vEyMy0W91v?R3 zbXyR)^0C6S8IIk>#_bVe!I(Dly)WPQ z;c)oHl7&2b4zK5O`pT&z^T|~0L)pYEPA#(ohp?WrnHxsa<`C7!7J^HdOD^L{Tw~fj zT4GE2D~dH)TjHM4548to@e;1Nrm+)u(auy~ERi~3bIA{!O>#_BQO`!JbHV?hr{T3V z1?!DwdP)FH8CJnon>BJ9tYe1QMq*tVHFRbiG+NnIo?E6D>=J63d)H>ao~&)Algp!j z5bKy#$wXLjL-UxYTEtEc56U(!iF9F=S+ZwivjXq37OOLu*&^Fy0eaBRiKSe0gWm^jr0=vX0^dK?o}+Zx8fsaDK!NGe8AJn)T(oG zrk-NfF@UQ_i|Cl`=GNh==CgaSs+Ywo4j+|c)R~hsR>Q(3t;IQGyd*>KKQIr{@=EgVzD+A_{|sG=eWp9y4> zlZCo~j`uZfH$f8fvO{~VP3h;TnRq6SK?X{7j_4jzH)gbIln-ifQt_iW<{C$hMk?weNVuj? zIf&_T@Lfcfi8W*-HW_Ur^2KiEhYjr#G^Xb%0g&zbz+J0~(jdgiFQ(B>)w+793#%LL z(k#JRUTYO2J*}wSwc%gpjw83BL3@-ufiL`X@-&zGyZ@`+u6M#6MO<$nP#W5mVJAgmL zYJOf`jNelATqz5v0)%-Yv%^UyyM%iBS?6H`^Ml!k9yo@koCk11tuytwvY3qeqv^x| z&iDQS_n0(s2^2*>z8di;q;5vUwN9057bo_g$Ir+JokvDc1886enFXsR-mcFP*BtG^ z(**FHsA?-%G3Dil*kNv7crg0EdW{3F8=u)KU5`8H5=&>cxGd8zUy%KLu~ih$rn992 zx))C2+*hnn$GulF-%P%O57=RiqHIb;t5C-E{~5@O9mQXrTmA?mv#oX~D&mg8ma1xf z!~uOyW>ekHjNRu10iM=q51E*w=E9ye`Z-pv%rmbniTi{s%J0&hg=n2#!*&ZhU0+V~*Ho3(!~v?HMw``Vtk$HYM*t4|7t-68rq_wb3fVaIM$2nEcKz5=}TE(2#j#>sQzzN8wo|##?kEkNo z9Y1PtMywVs*FJPDx$>!Db4D(UuflWjTC89W7$7bZIm$~U%eWSCF1@oIJvH*UHn56k zdvr+W(il#JOXliD)=Y^_Qx_ORAZZiNH0ifjz@0g#7ZG7`iv0m9!3|6{2J8mLhmqq_ zXIB~#d!2Rj+)8#nKs|W3+fgz_a`|Mv(h@zT`lLpthDavLQLWixcYq%BXop#oK8IH* z2NhZ?))-C&nk0wWcMd0qX&?G6-WAILpKbJ#utrQ9o#wK$gwDtuY6{_9h10Y~U^ewZ z0pbRXfkT`+)CHOyM3fQp#+(txO6FEFgdMFzMu1phr>UQmP7OL$Mjdz{2lZ*|jNs`9 zI>wHgW1ovoN8%8F8r?NY_+3JbRzRPphu<RK&QQNe(VIkUfUTB|;W|ebyUq#4vd^Rs z@OTIQG;$YI)1TJQ^rqL-a9qhkLjM<(GOx9Ma=f zk2(jMg$63yI6&Q?2p*yXsnAtqCdaQ$iR^Y7ol>TND@12TgH?ih;GU^AH}aG{RI_TdS;hR>u2j1RSvFJK>Cfg^l6w_$y@PTnG@0j-`o zWHUh@=wfxY6V2#Vb~^~dF1FSEgK5%dU^(*)UeqnrBSZ+^Zf4e{7nmO((~B|FHvs}n zvzUtgwP7Qb9p#INB74-yAtn1(A<>GkOXWmfjPt~)#Cuy+j_hkRYLi&A+0Wz=Q%);t z)brI*>y|p=SndZU!6NeLuo`aA!ByX**2NOqzuYKQEC!#HiGnTs)pR2uxyt6)A+1-fw}PAd_^>(3-N zVZKr1+;h3y3Q>-e2@dQcJTcc#bz?j-g&GCH3ra%5{;0}^Lv!+p*@XT}?GfIxVj&4CeRYR{hI(7$L<2eu^v`xNS z5Tv>4*#Dom_m9W4zwbo9Kd$S#Z^n4UBU72EsMU#zOjW1Wdg(+})v>Cos_HnRDynL& z6{}W7RUJFEDl!$vORXbn9Z@T49qWjfBPyyQqN#r5eRbPc-|?A~osXb+dx} zNJX6X9~#Uv`0(T|+vt1T!l&$Va%z;*N|CEG^rE{SIM!F*zMu>wSCzt9bi~2~VNSAH zYsIl4nI^NaPch4YF6weOT;!NXa9t9b3eiMXop)$ zM}y|+*8L*9d69I0H2jX|037w!u0Hu`{W z%|DDjRO7@k=%A+#RrT4!l-=jV;%UwY-v(W&!4EP%*lb>ER#h9PYK?) z%G`A%+@?U4}WT7-;!*i{7Kd8JPg`fWw%_Q+G4T-I%4i-Yz5a-Zr+2 zJFh_Rt29)sL%~z>_HO&WPmSvun(y6ubcI~47<(=7)Gb2I+u^;UqvVpU*wgpv8kma= zMioyyV`|K~6o-xzn54r%B4^w!t@x5#b{8Sun8b@@ZrV?Zbe^~ilm}u(s$oCs3@tQr zZ|A?W{ty{D;IY&Mf8&kPz4z6?A?wwR8uuQvczZ8UWS$zW&NA{(kabGaz`Q2vQui8; z!ge(P6zhiCZizf}s@;C1Q8X$aiSmvZgU*57N^eM;^73Zn@J6dC`!-Ol?{tEkVmp{) z6)KM1YPMu7syBA0fRn}=2OgMj9=bW0dOK^Dgmj?Ry?jW2+vUv44Q+Y$9%q{a_MLr) zuO+Gtw?P!mc>7!ogsuip`a*r#bi(RVIV?FS(NiRHoHBW&Dz#$Q#v7dNBV?Fd;`{Hq zg@Il0w*x$vh9a{rNz~8-ensbL8Si8}%1~kYR+fq>T84SSgH)Mu<{2>0WV&eu17*lH zp3ozI98&NW3`_UxZTeELi2<3!g3SYh9tJo>EvaFJbVeSyjJ)z@JZ_`CZ%=H4ZOMAO z$b0>$L?_8?Fq*gbr#A6MJbtCTexT0$(ldl!ZCd%n3o`D(KXhY#NANU0v9dz_IQK*3 z&BNSX>)S$7_V{)1nJ1dx29o`DAdOVw=C06F=AGpL3AoagMg_HTzqFe0z{v>zWWcA2 z^bjw8)b-fnU3Qg!3mV-Pw?)6ir*})47Q(u3xw{Tzkd8;Wp)qvNj!?6-9=Y^kL0+tk zGj)eMw$Lq?32cS-spn9*6W!`tyU%A95+BRiji)SlhfdyOW;^(abs{_kp+~`8u6R3k zZ(u)Hqe8jk+w_T%ZulfYmg0!q;|;W12$to?7eZ;m!Bs1A{aP34E2__8{o9?`r~8>edaFdFD;fE?2srGPdeY*{l9qn;GdL zPb}Mh;@;?Rn#-SY=sTdvC{_c`jcftes`!-J##xy3P~|+HnD@w0AmnztZV_}BFZ`^~2dX>kAM5cSr>VoP$4Rl4E zIXy_2^~3W!?(GgOHfJ5Epye}BqL!_d;9ebpZuwka>0Tm`!8(XqNPtafb2H!WJH^)R zqjKnMn-#OFbky5XJIqrPR7pEogS9TY{b}}!ZZ(_DEgDPK*%p)_?4icJq_<>V-&%zk`Y*g^fLWVrDq8P6&BP2F08l!JocLXGFCMF{(L{mQyR| zX&uY8`n@@-;O*SoXFA4H>QO)u2IvT}o#DW1;_yg#G9%fc-Efb--FU9SDwu`b2HLen z%J`Z%2}H>g;JyXuaPO=+9qA7b^qRSzCKiX}b98R383{`p#Amc16LyFqCso(lFWhu? zOPZkQdTk}66A>!cBXrn98`(3E`pcf1S=#Y0**3bDC0eLEF&AXo*dpalffGgNOkq?3 z%^DWXq@P8BwOF9xc8a?O?%@&>0jk+Gd|qSDEm^V#NIX8BO|IPWfR9w8kN5Hul@h2H z4SY-w0BzlRWO){a|o{QtV9$y+C zffxROt$NeF8}9h+TwulYn<4B-+=vS;^qv|Pmrf~Ii&HX6OU)g6`tS;DRWkRfA(HNS z;)!)JAnedPEr@(W={iA_y^Cc;{KMPcb)I1&$33qeq+M7vN-tLI1kkrRMH~j8tpo!13 zI4jKHK_fEa3%{j$os{Wj559E zs+$m)K-Tdyy(l|qBA=m3Jtg_z+Ml@!s=_21j0(5|DeO~p3-xle+R!biPvezk7%J{Q zJuq%2ddBG`D>RZwtW)pI%WHmz-t5AOe|W|&_^=xq$TBj$d9*Ol>0Z%ebKEG^@v>Ys zLAQTSa=d$V+KnT<=&@19z|hg&0E>Qx$Z^0-sM_3cdB2yyK#*8SI@9i+gWwK7@Jffp#LzqBtHkpV^EA-v z-$O27pJ|aUF(~JBlHQ;vjHy{@z!tobe8`UpwLq~AGd$?j>lbGaRZggzMB2?l>y3G+ zUIl8vhYXV!<|V7sgM8jo>|XjhoiX;rECdGI$>Qa6SxyJQqiu>^bQN>vkP%Op-4SO2 zy<<0tHq(OQyyN7|xf5Mt4=%?M*2>e_2mxOuEuDgSEorn3_}T!FiBjtnnv@rTTDoSY z8(y$Fm%t0R++jDGj|QjlaWSP+S-b-+B3}urvlhXIH^>yb23Y=px5G0eBLV|@o1MvO z9_R7$Y8j&Pjo02SQgnZM*Cr>exu7ef1vj{m1M(Jr=T%}@?H*xxX|nE9hwj3|Q>Ttk z1C0yS`+-VvPJ{Ip&iJI@3Qwoo{t!>Xc_{FkR9?!S;`5APF*G{Rr=_WfOyKojZsIcG?Xn``F)%z7>F|6}CU{tqk&&|Va zRt81(Fiz`v%qp2suT?cEW}!3>Q&79fENv#)oEY_b_@UeG(9`CgbwL`CI1sE`fqyjv znaRNuUGzo-F~#1l+3P$P$W{;U_CD1u_mfz?2P6wfR~<0kXz0s2T}QRBB-TRW$dV4z z-6Vrw(*vjU!B))MhS_I#s)Wsoo8BT>mR~oZrzDc5Eag z=_S`WL5?>=y)|QO$YY$<&*Xy6Mh9Q(Zi!nu3{?6F?!0d2iQS;DyJ-e z#xp}U4ZK~aBwX+4BATUMxzU86a-0L-)l9G84}8sD09TDd=Xq+M-ut1(?(w$srHOdHQ4%(EfhxouSDdMdp&fJAkGCdIUcJsbUI$)5-XfJ=m`ebBa6T4$wEwfc) zjwYfnxFi*73VYuR+KUlj7W zbu&1>JAX-FgN9gsx-BEss6Ntn?77h{pZcopO;&2YWE-@bW$6qVEZ_}*LvfK#`d;Y1 z&>Qdm-QXQ&K%oDr;OUQYJa_gPeor2|aJ_2FIE519BH&j^MwpdDn(REMhrP7cStfl& zvc;fts!Kd2R<({4n<_*mJLx1ZD3)Osn%#(b6iY6V>E<1L?a`P-unTWvnz*J7MlA)C zfL`c1-tVewgMZ7xIoQn>F_B^;kVtEJH{YS%s?^vqpNUs?q7xaG9?a8$2;bk1QliW0(V8+V(b+}OL6MdNQacZ!=uPG$2Vr4aw+lPT{ZW;4%QBDd&``8VOBP%#V zfp06ge>74$STj6Cm870-kZH0CT&E35D|sqHC)0WKo{XXTYY{UM1o20aUk=R2ZCbkYL4_1atZ9f!Odwn%9f1qygiU%QfE72%Y_%Z<>}V*k>w_EA;zK9W zCgAdb3t`q;RPpXAN%eHHa2u0wNS{1$6S4Y&d6?>yt>BdMVgVhK~ewgYuem~mq5 zx?|$PQdW=bw4cffwg8`Pwp>t4qzJp>4lA|_60=qC6J^muqup!egaZ3`i|HDy2@{PNx`6fI@Ss;_9?t6( z)deMwA@<>GDH8*9+ngZ&hhQjNcFB;QVk1^0bnA@|gKEL(!zy_})`C0CkidzZ%L>RC zG`0&oN3FSsKoaK3E}Wa8s#oREIjo^kDC0{+7y6uZV@(lvT=ikP(m2Bm4jKF4*oDSc z&?I{$idi&Y3*-l4=p?i(jry2&P)8+;0+MC4%GyAWT7|1?*~k@nfg6#f=jDWsGpo%} zvF0phjkrwehwjVW{+!*o{lW%=a*Z8wi2TP=Qb0Q7 zwnG0UH`D-+H}^?3IYrfXqiovB7nE==)G6=K$kUcbW~HZ?P3uB74kzaUUp9916FqK( zlOl9=m}M!~=pLBfDdj_MYzqwo3Vh{y-DBCr8qG{A#cUz_0q3DY9x>p!q)fNz36UhS zt?)5HfuL1fs?pft8 z$)O$qF1-q@7Wt*FKk!no0~ZffsN%s%XUTl~L|>bGI!DanG!@Q)jDYL5#K;Vk`%i!| zr0@e{McblItjm6|I63Ovxnfn;Q<|Z}$(TNIX9J1$b5$RljoizQKvv+`%^|r)uNg@~ zL@71)Mx#1IPT7$auOjZR{X2R9+1Rz#1Rs-ifiC2e+^{gzaHl$sCPHVC z<-B+}!L*hFuzj)Kcuy8fQ{lL$+K>=m%DUOEej~QsbP>tsF^i+keswl1UF^yo!eOHSo38@5VxBa+yWQeZTi%lg{BlZ@Ap zNzp>zun3tg$LIl8&@8Jp!c?eJtcysyo6VwR46l&g+D!S8UCS$84Ei zyA5-=I&>r*HtR@+Kij{jqfO*5Sq(-F@a=pNif1^5eRiNRTY;Y$mEd;MNdz=g%}8xd z1R`X(5qQ$8G}xPCzE+rO8SJXp$ulSI#j_Wuq!vACnyF=rbg&VrCObK?gO4`l|{^N)@>Ur} z1(Pe8Z8QV9e#ffi`H7pXvykO50nF){ovW*jF?bZtzzAfjG*j?G?MK(S`_T4~#OEK4 znKyJqd)>kNP^ZC+daQyAbnb&AQZVUe!70c4FJ^=2ep`)vekM`_p-v-KLX5W}q=zrq z8}2M7z0IqqYF^DK0e$BYD$xO62*>WEoad7)0m-s4fG`8p+IyZ;b$SM4L z+Zr%7R5duaaPfj2o8`RCeMY$LU8-0m;j*$#x3D^1W z^qF_aoKj#uoOWkd9~jISW}`?o0*dFK53KTPGhE;5BR0a&!}5H6jJzVn=B;s(ggH;! zP)F6t9a&65cm@0*?Q8-}=ae23vF?m|X*8J4a12HgOa_6{E7?qAv8XO3rus! z6pPGjHS%k6th%A=8a9?#j7SNTqLzC}7v0x-S{u%!j`D7Jl1VaYSKANbA2)$spVB(or8-0p=`r@TH&82M%mQFWcXZ!eR*}Axz-zNJ$VXyC89Cw!&a^Yb z^0@7G3g98opkr#YAFcROlG28i#~IW&aGiSE8c8 ze>;poL!aa(K>5~eL?f%c*No7$Z!6wz>uAhRh*E7(`P++tf2EU~9 zZj$YHP%D^C-VMI$?|n!FBNdL@Ka5+bu_noek$?`}pi8<<%#v77JWlC0?4oivM@1t+ zte)fpwaFtrtj1X5)1qDEQ@l6#RHu8pxN!2sg3&`S-EDD4CP}86Bz_<+sYqgNqWL7j zU8Jw9D02hqZv*#5n;9yW?gz!1S!jUu1k%tZU!xu!1RqToc zU7(X%E=plz5SYR1>f)? zcPtPKye5H+swLo4CHkEC_ySFn$=Llntc`A{Q{<97#mWeF#6zY!upB<^)~P7-+GrB- zcAWE!^mBpdHpd3&o$AA9^M)R>aGCGaVTN}+&2d}ZVkpL*%XMT;T^c8HGce}*+P%Xz}9;2}SKu-sB8;i}EtV83-G7X2B4Fv%n^Ur!s< zGs$iZj|ZMp45#}zyQ5I+JCkI=>{p?Ju^SGg*hyqDyaR}92Whs_j0(MjQ$EYRb*7Ol z*oUgM0eiCx-m=lV>-$=x4k=Wxfq%a?->B0-F-f!{ShV|0CGb4-^*st2VfxZ;aeJ(k z;5nKt!qkGcooF{3EL4hjh^>i*hXr4xTaPL9$1G9b(r2h=+T5~-1k4QH1foAirx1vg zMMhW&G%T-?EqUS@VA*zyzfnW`r1EJF@TN}PM%L(w>)1o+^IPaNX0b)Uk00S4s{~rd zYp?>U^rBt>T9&Dgpn#9jQSjmvngz?!JI&Mc%&7=vc;$>0Nas+ z+=vq-7FEla@<5HzNcims%mrgbJh3g60KDRsM3M>BDWYf>eAdKiyPt9^jO2F;9kOqZ z@?x0}K5Rxey{p-kK&=lS8>+N(bz^SvI3UJ)9P?gGJKH0D#)-zwAVw35s?G482xXLN`}(O^ti&yh7S zjXL+W;h;xvB(KF0G}qNgJ&n0^73hfu#T`;G&pc(w z(R-<5d75rQmoW?7${-tLv6xNUq}&}HXoR9*V`q0&9F64{E~?=~1& z<{@3-uZ-4rK6vhg-mGVYZ&g3|)&jjvTU>a=cE2?hVWIc~1d45)%| zwj%vFlxK2_EP}-;By)OSZ;NobOmcv8KSf4JBJF+~|3NtzRIeEkTnxQov1)GUSR1CM^Vc z_jKIYAf4{I8n(*mNMOjxVckK|*0?iq{~UFGw;37~W_Cl5kpUf544>e;Y>X(8hTY?X zDk2-c`UKU-YoI|uJq?{gJkF7PQmqBc!L;2~9VQ%SmsES6@lmJI4pUcj7bo~Uyk?tX z0<4nH$ikGmXAg63s!_wTF{l1kpNUS)Da_JaaQciVOqm1-jI~Y)=4FDui=HEv)&XinKB{j5^MOg>)wkBGphiO=xu-KwtPO+rbh#BoMgJd&VgMO z%R;1gl>+rkQ^k(gDbd}=64*dIWqVH~^BeeXqTk`?MuzMZ9b!nO85bi&l=dREFMnUOMeaM15`Sz#B3y zqFK68gxOxfV4ah6BV8g*x>}C`p+R1T9A;fsCp&asBfGbZBnILh{O3bjXPzZUYH}+27Tqc@Q>O{dfA-vVulXi4LtW>1mL=&5r)FKXG5X+ z5@{(%vQ4DRP`EEf^boOe8;|(G4X^VXF9 zoMrQIcw5Tpwb*)C4usM$q=iJXV3MXIHPS4wQmb^F>R?g8F`C&8i4&>zrCZ2~p^}(k z;o1-l`Z?RiP3l+Wz?AApqtl86=wwv`rE-cD%tF8@B$LWOrQHM9-zZxknD0)PF%xM< zHdvKbCOF3v0$-gRgja?+Gwu+H_Fj9N(cgsWI#uh8$t7b0+JtI(ipm$0j*+t7ZU#R( zFgwMXlcAA5W#@`%v)pPI6;3kQ!A#vYRY1q^bp3F&BmG9!*pco8X`@B@jtXy^cUhG9 z2Anl8U?EUP9Mg8ktFnwi8U@`<54{pfX455lfxNjL;t1OvmeuGiM$8d2P8K@0DlkLL zU2-lPuxfV2SYSpq;A_kH5q3}+t+f`&5l}YazH)2Hb7ZrvQ)L`5Kk$lm6|N@q7JAze4QR}85N|; zNhO=e_vi?O;OCv8m!7O(KiRd*oJes6wdgfaHybl)PUwV_<6jEAb021z1H6$ulPSP| z%5)>p#4UOY6?_S@MTc0fJLr!P31+4z87=_B*&{QoUCp~^ss;FVm|4w|WSrA3I&~*e zK$WZ58tYQc$fDgMZ|I4Ng_aD{g5)9`qBX1@3Ws%gcbc_;isPKTq-VHI>*T0D_C!GY zU2mUZcH z?xYjN99p0m8{?I9Up12!IF4&|vC}BWc^a?O;i?KJSPHtIG{9!>p0q)gmP!h=1%*JO8WnYn#8DV-St0kydFKiCT~(mP$@A6+4LL(j2EMY_sdY-|o!J6KWeg1m2G!uM zJhV82Yyh}b3sC2Ny(Q8xJEKyEs3*vejYszC3z?2ec8vC*Ldc<~Py$SXBN+zo{zg5= znRlUwP@6)HsP^=H%h14Q60cdTV1AZ!QGyzjli;ukZo`#E*p8Y1=@l$ z1x+R?*LCuQ44dIRM|3+IDv>+~r_#$$$*TKIVjh{X2PH+1KE@NBryb;p>XMbJOlE^E znKCQ*AsD_5pyLNJg~VW1WCUC1lVG}1+%{lrVR{yGMUypCaZu#tn%TgzFVrno*|};V zdvMzJsWNaxyHIymqMAQ)!t|k$%IioLFu5!l0tJPj69#TdW5qltBhH*ClLpe#QY{}X zcdEq|x{eO{>Rm=UZi+SIlE=tQCmJ5=7FtEyag!9WBG+*u^>ei?pVC(IrMb&1)VBRZ z?5Q>AMGLJvmIR*;{0Y+URI7L}FuBMTuJVM_ROI&#L&XzH)0865cn6&YTIq;w+GYgv z6ks0*auVvsbm)pE^%;p|xwy$npev~)Z}cqKnQ=40Th2S2y@zZ$0lqavACLjEZ;V3~ z{92^ZMSekM$ffKSPf^uevRI^x-N+fW%h&i2+(r(3BNb5VKo7?A^(AzNS;!Ah6&0e* zsPpcTUAaiA$dc10Hh7XTriY}0#~a8=v^welL_3>~<82nXdHGdMx!awMj_=U@(AyJ+%HIrX%g_K^x>EojetiUfvg za>-vJMPbbB!tNXkRM1ljjV7t4Pl!+pYEHb?TRU1zPVV3Az@a zP$lvX%2+C}!y4HKWp$;|VU&{$XwIwjs$LP};uI&|bEvcwQ2tiuxd;XN6Q|ZyxtZbJ zARP}o;t*%ph(3jaqKw?qP?7E|u^h`L_0X84u^xBdxg%3#8WsEtq*m7Gc+5{$VoN+j zH4L_hzc5y1wmpLsnGHII^K@1}r%(74Z4`S>9Q2M^$fu|^L%AP{&N7@XUfRsA%r`vB zU3{2!frW`}w&vY1$H|;(6sz`tn5Bhmj|{L#D0PpK`W!5i<)J#ndDsh2STIWgAD9Q` zB*s1=u|cWUGkxtOyZthWmO=wE#b?+Yu*M@7(-dUCj>EaI1LbliYOZy4fivw;za|^X zuZQ_K?&NqefzzQD-B1bka3(Z$ZGlo*$nr3?Azi0fv;5YHMDFJx>4DSGrn@>=h0-%# zO)cCzeqiWZY6Ukp(+zl6r?@Mgksh*48lY_V%YIpns%k|HPOpjYp zo&-|rKF5?Y+|lU&Bl$eX%n<1V|F(_X!dbn>4>`CfC;*n&IxEHmpfLEp^2r$^JVjnS z^tp>H*XTl8dk)^Y(NB>PFo9Y>U%YZ|-6iN3iii*Hk`8m26^SBeO>S-mXN$#Y9F&HCKw1P^ycUegTTVWhHpStQC;IoZ*RDxLHKGpbRI zaufQDefJ=6t%p1(9%$uNgtXlrw;6oTGPtW{z0G%xRdVV!x+6e)M{rgX)H$}wS9M?` zI!P33Wyx57(JDjqyO^?!ytoSf2JGV#J)~mfJ0vlQ*CXYop431SG!FenBq`uw`~YWg z4QlHK)Y&Iw27FozIFNpN32!g7oeUEeS+<$P4lwoRNMH|}r(nN!R4)%fogc63v`uz^ z^MwF?YLOktfA5e=_MsAC?0`E)9@27RaEo+P2ldc^j)Hb90iNY`L-4FX+QTqO^5!8| za~B%JcU@Q{_D><1p%d6OFEA-JMGomK;6$6^1}I|!EkpKm679ellBlIy ztXn0DI&DC8(8f|(GwqZOm>V=ngH4C|fdAz1S))WpJJ2#R0_R+sGp;A-A=L7n{KS}G zQR)el)QNOd*FZ6oy_?6tTTST-mVD!o~H=jfyfg=}p-GwnJlOL9mWj?|D$i~a&!$vjD#~RMo z&-5W!l63JLE4d18xehX_t7Hn8{|+M<$y~wU<LS4gC%wRStr`>It)(>2wTcy)MsN&*OBUG*j z!2A385z<~t2y%!;1ojEs5ZVvMxC^{SC^>>ssev(1K23Ehfr)ej2|Fa$@Jx2&nQy}h z1@;-fl@2Jg%JDOu;qG$8hPy}VF}v>2-PIB11aFaZV1-A>6{>_dv%|PRGU>4{2ew@% zZd9Go50}NhtWa-Ml8QtAL!{Be`tWl+0hVp6Yv7>7C}jg!xe=sUu839gl5eOjq*iV7 zQ#lVT>sUkeh+KP1!5^ z`3jWg2ks2`fG~8G7r;wnkjWRNj-XhXCi${Pv;$?Yp~vcu)S$-6k=01UETVnD?R_MT zjzX_Bfc`QI6V81EzC)Ga9zzYginDAG-*W;f*~MUMdL=Yv@LiXotDS~^ri31e4)+Wk zJL4T}04G>HYtu(!PQAgcl88!TLZMruuX!Q#+hOQUhQUwYqV~bZEZK=4H&ttSV{hj+Q==U{CkokCS*jd-GHlY-{^ zou1H{RI^|r)7dkbreo>3oE5Ef7<>`du&xAF+Mwr2BC_~KMJ#IaE#8G&EOWm3;04RdcrQ+Ok+qBFy8|ij|4p*^f_^Qk@a)G&X@C0A7`Sz3P(~y zd!P#UcQiPNbYK7j@*Mi1X>{xzz|x-TVQ4%G!M{cVe;9@$CJvQlg&6~1@pIJn4enES z1>fr_Szv8EPd4FfnW2^HN`AX9k`!Np!*r@=Y3Us;w>c0hb3r=MOXxO#N zRhQ^gJK?^22^MxzPonyGMXN-Qg9*S!y}M~A!|l+*nsD-;K!uVnI>81Y%?bVS99Kq> zjKg%MT7GQw>Ur0vSKuf(fKzClo$7Y@WQ%Z@PpEVa^(Xr0OR=cn6k_$t=PavJ<^bQ{ zUX>59e1XbmgtO z0!(+RY|*Lc{FikqPS7Q>Lb_SYj>e2t5KJDx(BGqQqVPa05??&Y| zicYNsTJwbzY1&o2{E z>BQr_0((h<)e3NmG4Nb|wfnA9R@Gp32B7V}P#1a|Nu^6xE;w+@aey#1La)?;`Qq@K zL5mq76OrJ(=&iJ3z@{#$W3X7@VwlYt65UIHzYl9B5}?vfG0yaoD2Ia$S~_5oyDZAI zSUcA93RRf1z2l~kB{prO8U4s^nMY?e$kKr+#_0m^pa*18cS9*z3x#JDJc-cA>Kaic zGf63FCI&pX;Z_&j0;Ys?VVZ2T7&FL6S-}bUM1=@s|3WvAZ#IByIlvP>Q#LBz4%0EW z^eU!8RN#a=gO1=8$yWyH;%`_o*5U3T;pP;)8Q5Cp@N?8bQ{S-ZlTJ9WNUldd?Y5b|SaI;0z zHWG`^=}gZcO)rw=ro0Zf)hRCp8di$z^F5&b zNorCK0tcOuJJ8$}dXGHS@`)3RRHX$msrtz#{N^JxlUI{kJ*o}%8ZOC#K(n5LBKZN4*F%ZDq`*CQ=?5+!u7R>6v$L|hk7WH=jtAN z(yl-TmW|}*GIpsez<%x^E#L~cBj%T|9X1UOSiZCAzQ)S*u`5&}C+<#QR&4_>fVxUo zVK<+VLC5Dr=p5`LKZ)b<=!hEB1@`(&pdC%LkE3%Evu?KV$w457$MdE9;FnA@-c@4+>&L*w1NU8t}f)VLiuNtRGCb%E1-WhRhqOuOj7{;0+is^aw| zT8_w0;zfNl2n4^1*AlE1cN}~B4Q`=%C@9Cs8?~a_$sF{AtLV%^%yeX_?WrbJ4kY*n zxO5$q(M#}K^wDFi2u1UZL(&2_Ypr^RBSe5bh~>?wQ%>MGTtH>qEsJy;5;#!BfKiwy z`Cy{+NG>g+P?X7+zz)*j6R%X0RIpR%xm)!RG<;XA#F~I=yaVjQfv$qSARg7@8~F5m zfl7BB)kp`@s=Bm7{XLC*ooKRw{(1(AvQl=5w3$j#E&W*I&)FW(*+Fn#LwW_ggGJ8t zKB}XaYzC{b0NU%9q)YW;rS6kDciA1ME5M{3x&~ZiiLU4=^spIlB;xMCJKvzM;ducj zD_Y$H+;Wk$3HV|HDN}V&4c?GWQb%r}evHu2r6a*@2eoM(?z`7e78bENq!jj|qpCKS z&0y%d>vfF20IPVX&v7P~>M`DKJb}N+P$~HPJM@1ew1DlK;7b zF1C-(_DD~%PC9_}lV}-?zI}!#vqkLqC1`{~0}aj$y2edjY-F=_{RVyqTaCbj-GL5v ziey1GGOUVKEb#GezQ8PG;?;g|YmMqCh8KZ!zlOiLQDRqmP#Z78c z8o&w+d`5zYf)#lw7ReLdKq~Yw9fn$C0*p)yYQPL|sP8!MIFvEAMnN864 zLs7=O^vF#XDS8Rr#+52Tw-AQDd|5`>eMp-~AvsXi?~_DPsV&|M&Lc`)^ILW%4n;Z6 zumX~bldHw8;|JC$^7kg;uq*$kY^`IqsA4w%)7Tmpmp0w{G9YXhgEaJn|( zh6|zXG#jjXgnB_sc^>-7RMaxDK-U|9V|hsi@WFai-7`1?=TP4y;vJq)%mEkGz_1X?meFgGUJ-A7%p1JC#% z>ikx+ge0k3742S%1@xziyhFs0I|mi@6!!WgJqH?^Bu4cn-9kTprjqCek_eIHAlq@v zo?{iXl6lt5Z=qRuD!~Mkb5REm@;j95P~YKM57QLwb7r8)yyUq+=NF)fM&g^AC0;t^ z28%8vK(^y-C?P&R0k=>ZvIjQUD>@~2)ge$%n^-y-PySNniVl4LLWN9v%FH`d@+Eo~ z+)0iz4#i6aYQs#rsNpI?y%_>NXM(QjJyl1?`6YPT5wIE~ED^5TOLU{f=qhdOj9b*W zu|NYa2oou8KW@=%WO;7VEF>B?L4n=Gkaqx1b%NRGXJepzizhu4K0SP{(Yg=&sm9vH zsSzgIX^+ko7ix!xAsuE;#US?9WG(j)PTDUb|(jCUo3xyz869l(7&=RD)cZolVn+w z3BH7?6uGOYFXN%>3S*^w368`>C|XZ=8|}fT-w1ckEb>o%P+%u;XYK*cy;$&B4#6a6)bCm3R29oI zT}USNHAw{ST&ftD^+r@hH{jYj=?k`t-EbpHlvl?>X_aYg@_d!2hH$bvVoS{dHQ4}% zG$AciMVVw?*XmmAB_Qwgh-`vazeN&V4o`p%e+1JM(&1bfhWF72PqU3Xaf0Px&F!E& z+CaV4B5#ozVW~z`S}CZP8~K$Qa@w^+kAMbdf(yz87S%zz;X&PEA#4{6NE^`Db*^YL zyg%`35$A7+nt~c?*t~_tH(pNZah-tMc@8JSG+5el9Sw|ijD&-2il!ZW3|+t#*5OON zjU@eeo(nZnng#=n9`e+^b|?9m_XT6_GZ9C}al+iOY@CpVDvibQ656XWQKim6SKf?C z3!7joli-k#BOYLt|NO5G3hMX&k6%f+w6F|FA_>L+MqSdhdVtzVH5z57zGgHTgXKc;NrJ z`xpLf@?Q-v{RR4E>j%v(_IHNi`Sp@*ASirq3vG*5cA6@0X|}cTVF6^j5PK!P`$ru{Dm1!zb1bXvYup+ zM!)730L&xT=4Ud1BoCs%Rj;U?{!?N~X>D2&AHahU@poX#ts&`*IOQcH+KS95tJ`1S(U#PFRru$SnI+=Zfe~SGk`J( zSa_-bPx9OJ32h)>B0r6<74)m@lPG65RFwLtx&)L}2(bMBQvXhUM!m29GfX!<`d49L zXwZjfNj`zn=~7?l$HXGxxU2{0d+fK_e`e9Fo8FOc>Gwek82VE>75m~+{h|7Z{#pHF z`g0H|-0O7g!Hzt{g8#El=|5oh84?Mm9%-{X& zKhDbbtM~rqvo}w@f6hnEqp1Iw-1{RRwi-TocJ-5QO1>KqKN2zg{)qcq*E8S!uYdPv zfAfiZ{gL^P|7b$W5C2T$pMUuJ2SY;t*8cUI-EV)xS7@gDfBoB^{)eRRfBX6`-~O%d zi#Jtv)1$ukTdXqwAK6pJfAjpI`T^%Zsn75j&wuy+h4ppMM?=5;XxqpLD*Djaqgnaq z_K^J%_ixRwhkZTdcgeThwfn!jyH~#*^o)M+(CrJoZF~EB_76CpBCB4%mzy<4YVfZ= ze#Tzhf631v8t~k8-4@xuNPo|J7L>wz?A7}}_uoD=*xwA;;`{pD=a%Q$3}uf$9P~Ru zL63eeqzz+cPC^bJCx!f?RZPAC<6ZUb_pW^3|2Mv`za9Plx4-|B_irJs>R}&-c@k9KZ`sdY!2mu-Ux7?;t zDj@z+{UWZ>-y&}zF`kmYg{S?S@)z{KWuGTMC%FCd{=au`tRDzj^}d4na*F)4@nP#H z=&w6R56A8`PQhCBNs%poRDDH!J<#U-CVkIyZe){hs6WZ2*@wvI)#sF>KachKgAmL7nE15%YXFhi>|^A|QI;LiKSUvH;0$V1UqeZd zqyHGI+|l0$aJHcS2xV^`fYSi%d|njygY-9;2O_L>2+N~MF@9IS{$cFt1dtXxA`g4` zuT?z)Cx_M7G^OkGKhTd6Q-5DQ)$c(7^cDRj@)J0Bi|8H=igV()i4QyXFCg+I`j_=*2xZqeHN528fTjLD{T0L~ zyg<2LOMVZf!MgsW{weG#pZ;m`JJ`#=3V`IZl0nz#Khm$E41Yx5r{4fwkWGFA5cHSGWAaIe*V6G` zzoTC0zd{-QW&Ejs4|4Q3$QM8`cjytkhev?H{)ZFnOZdm$pr3yp7xPP(nFs9qX5iDF z^QSL9^z8ma-`%@?xa$o3n@1&4-+B6j@BJt1cR})fF|_T6ekv~cL%HhfcOSj~Y|xKB z+PUky{QCF)<<*~m_aE-sMYH@_-}~SBSO0K+^?wKMK6Li9GW=gZ{zk~Zq~EuT$$RWi z?caI3{_qpxJsM)x1?@d~@1v`az8UEF-lr~p*H>g$B&90 ze>nVC-meS&(U8A<@0T9M`9FO2ufF{?wWx|O z=tqnt`>j35|1s$6kFFnQgpIxD57`JBHCfP)z5o9*_a5LQMhw`tqHQ{g+Gb3kwwT)nOc+ob5hDg#1r-qqN=_0suw$jQ?)$C5 z>_Y8x|MNf3fA9ILo?3B+F~=O=H^!VRRPz>x__uD^_|t7QbL$SSnzF6QjtjROy0xl) zZE{S-Ugdp?Cgp?rt(g`6De-pk72bW>Ho=~$9;JUSk2OE7@t+efd(&eNhF@h@vPYBbGV7SDtIV!g)`yY7jbuw zr{|8%PiG+ePS`vDLH4rzh1@vOz(ec_9#?)We|>g(W_@mJ(3)85D<(HS$#>>9){7J0 zBG<9JeCxbmq4yRK7hV=i#QOMa@me2Zt24t5;q_dM>Jua4h%b*_9s9&@!EMtO-hRQ5 z+>Gpb*%{fcd2R*ErE^E*$8ag?eJ|s6=VDl2?_{sJ*Db6HPGyic%YT)rq{scXOfl~S zA)1`&#-;Tg{{8-JUh`WM4#3~t?stLDX8Py)V|bwP(%^g^ce$H5At46Mzm@+}Z~%T_ zls6I&c|bUoNsJ4;8QwdTHp%;(X{$E=a(^N>+Vzi};-|d9;q2grpmDe?=p76QdVAaA z^Ge4x{iaben6vKLg<}`=TKzyc;I|z`jy(Hxra(CnoVrEf3q&}+4VnE z-@W6+nr_|&C8wr_#%Fp18fN@-`i3{R^Dv1xV9YOl#0kh?N}c4A-t z5bekMD{~8(X1=NPrWRXU^=j3+`J1Ip6Fgp$xu$++`k8dgx(916-m!E06?J{<7VqrJ z&9}%N@V*gQ+ zOMJi|nT<;HPVJSL?RE3+$T!O#lK&{)s(ew|`H9OC!%MFzKcsA0;3>nVlCKQu=V&!zGQ2hZZePj82Z=^825e_^6G4#;tG1!9as**6qBq zc4yuC+JOyK{@IQ0XnJglKcWvt1!Ed+tZCk`kjp5?C#RO4P<}yqymWm0ZZLUQ{Ew+I zv75ZF`Qzno*$v*sCGR&nxbfE|&HS#py)$EK&)uYoFXrB8teqqU}i8Ir$*6yqynZ7poTgmXI3tD7aoZ7gu`0+4a`|-}bGRG+< zjn@{9ix&sQxnbPKvL*YFe|F-Y#Hiv`<-$Nv!U9YhqRYl6+TgI=CR<n^F6rHtd!in!=33=eHjHZsb1RwXTNvIIf34`w)Y{@LrPU>~<0t3Vr_ad! z!#ggqZ!(#DJ^oU-G;>>h@A`W(kMelQVdQw5SHn$7jVO7g_-kG|66U58&Hg=DnLRG^ zIk!?*=2zC=+%Sg8o^A0f6Q6TAW1=@S{=UB~cT+>>+z9@(q1>BTe=Mz8>do`6ip@z} zPHcQp;=uUT{_Fnz@ySJNi|;Cm`A_Gk=EuV4ZPOiUyVQNwFcYu(VE7SU=(zA2|84Kf z{Q22GWnO0-$j$eDhh*DS5wCrjAKo0iLeaYyU6F1<5}qYI&5gxBo1+r;X3V8xom0 z;rQgn)I}wuOP)@C6uXtF-@*A;V~-?x&?(rEU7QK?FD8!Sbu!mviqqewKMKP5K)+39 zWZjkNPx3X{7izDp`D^BY@Wj}f)DNZYi)-TZVsm^R@5|j6zL9tr>~@RYfo%<-;HvK_5k?-fd5g(eE?xljc*(vFR zG9ToA=S_%T6x-;%5bsxXPHJ-TZ;G!<6mcWX&AHk6gSb)R03we0xodOFg6ZL(^T+de z%pSZB=FR-oxsQXB7g0drU&0jUr98~*^GL#MUTJ!AypkJEZ_YJ}of5kdEY>%{-)J(^QSN=Znng7b~mV7V1m%mRqDR)?I zJ7c@|^X-D#{L5imUM{jvZdSgzw}G2Qmt|+=zT?(>E@J1m<=)P9%wOxDnwn9ZOqFvP z>7c~bMHR^#xfphf_guU@!R-{pWo5zE>|U8AJUrN)SojMb8*LF^%`FohnK?Oy%V$T% zYq+K12;#Yu{EBc&{tT}ok>X@vTE zmm1yd-^8B)Pl=br+J-Z7t+MxX`E&*I9mjbidE{>I#C3_g6C?fcOfApn;hHydJTA@U zq35~9up$3;ZjW5kTz&2^rm;T@p7i%98l7zG4-J~;Z_m9Dtn+JPi@0s{O&+d$BX?!? z-h2=P^t?+LHWZO^=sdm)^R#P?>7$-Wr89dDc(pX?O7g-g3ja-H*E z^S9bP;wQyB$7;Dq`V6lPy)}{LR_JrXHPrdI-z7diJ~_-~@5=6*?E@C3V0G;n3qIr5 z#`fYijLF}uj4@d$Jq=BrY%tGFz) zF}euRE?mSdACGyj!T^_ZtI+%YLtdP*@~hl%!5_pW+IiRJKFc;ki%s)SXE<2Flo%tET z>CEnR;z5pEyzY#?kM$qs0ng*((_>kG1%I-4ulJ@`=I`+8nSFSc3(W5`<8gBCklcX$ zbnox+-tjTKhQE?a>fQ2-;Hhz3T$>5{9t}n?Y98mMdAw&h7Z^HuD~ZoP;WALppB{UO z8Ip;?6+HTMOspp_SDx)Z?C%pB%ER!O ziMji8Z{)8FTlq=9J2f2|whkvVdia=2R6~RQJPLL|9m0KKB@n|Uq7q0CzRB`66R2MhD(=eyIYab7Q8;JG07xZf-` zp1Jsf_h{nU*pjd(Hhn>mLL0aHM{!AKIy0B8dBow_a2qq8Pcm=0H?o`@ zR&o5&;L3dSeBop1PX()jFSwx6H{T=ZT+Z0=1LlY(1xYULy`EjbMeXC559$qPULPLH$a51n zElgvcbfEuq>|Vb%SjJ55E8#Fd^xAo&z2m$w;oM;F@Ib$Hd=obf)H4e+jJ91CPV^i5 zv*?NCT+AF3js?HZdiCCu-ezy8KZ%HZ9vrqFmb!&fhBCjpF*rPb1{ZC+F&}$hxG8+y z>%^t2o51e|{>*4xFo~I{SD0-r!)mVOA?jniZp4rsgIDtJAnRTDlm5)#4hlaE8ga>I ztUsR%`5N1v7Q2WxTpgRuOxyl=hiTNP8{;0LM^6s!<&mF1GIusGyb&EQ#u}exBt4qh z;8pa?Z_3V+JaWIpf!E>#BkY%thsj8l!PhmgZc-g@Syvh=P3fA4tdlqXrmK#<3#wIWWcy;Up|Bdi1`f)U){}EhTE~nPx z(8z{hRemJ1g44kH>gXKJ#kVd6zTO zausud4^#hl`Ehv3_qhdjIJcCnhPR((R&c#H-CyFL0UOWd7M&5?4ssRO8b&fBQN(Qf zdLDq=3465VVT%k}E%LnZV8-mHGmCyKGvfW3MYzj*jEAGjVl%PxVg3kiejdVWsLlX; zGnjijgxfHWU>5C6=KdQI*^kYy$lu2;vO9uj!cJUqxP@7_nck89r|A2AfB)E-vCsX3 z{9gWZ%racyFJhLVFE`0-&o>Q*273op_*VWtBp8T{ZzA6`G=ClI$C!m*#ti02uBc7K zmiqYL@o;Cyc$auKb`KHYx7hX~dijq00BRn}Et+rSSLLhnr*bpW@*vHluLkQL&V!Ac;K0*^3g&8vm(f|8KEHtP)7aiI%)=Z@FD+um@k7pC<(XsS8a9QrUr^9EO!=qIjZ9Lf0_W>H#ztkK>%^y*4xgqL}~KMVf8-rL6?%`E2+ z-jZ+zc6cJS-T_V)q2aCJ4ZK{ah*tw`4^N?tW`0}$5B^Iq?sOPwTR4VmAybJswg!86 z3u*iLVcYN+Wc0%jYgxo2np3zD{GhFldkWWHCWo5$=>b0ahffDbA<UTY3-PSCz_y>EzlmWpB9t3I{}5Pr6t!2e z{UxpL43}-?2AO_%lQ!I7b(QxeZFv)~@TK<+wH2Y=^TM~oGs2<4jJy|2;1;)?-g^HX zJjAi#t<0qlqW%5672Z?aP_T%(6zZRXl$4 z26M?ngPVgHJgj&hbC>IwS$;8iHArD;y}i?rs6XX+{;kLq^GEp?aYI8j{r?S?FguJh zAAKY|%WL9!#n&IhXR!9$gSUf4Tp3tQdj`|zm%(e}_`U)+Orf1yxi~)r?46Dd`uSV9 z6hcM zyu;DkK8z5~_fmM=Ybm8UV}`$=`|;c$b|k*1S2za*{g$#n438jc*$2t~jF%k%{wus{ zW))AyYmMVtMDwr_ywHi;K$c*U{kf7bg4-@$HE9G(a1a8`^;*RfahUYQbU4n(qp{G~D zMt9Ppm$}ZE^toC`Tbp~ln~#@Xt_mk$=Uec%i@3gcdCmw$oR#JQ=clRZWPdw6a18n%$&FfDV5Ymm3t_ymlynx@egl~< z;`(DB(DGZ_SA>^r6_zo}JDC*K$g=^tyI@m~d8;V*0rXQsA>ez=)f`{wX?WT8Ri;!j=B@gHI7$B0pX z0;hc_XMH#uM9kruY+cxjHjeO)L34K?!(`faLwGsb7)@kwfB3ubknnCWk-~Rhj_fCe zA32E|YVJoflfc%;U~C9D=7y4RE?0(L zrav|YUvg{c#vqBl;TtqLmYeXl5r-xHSIIMh{u_n78$d@V`g(fsZ15IwPz{<{g%p3H ztkdba`{;*ijx9x332t87fZj%foD-351Tj8;M?`7w;%EL6$ukm59>^UTPr=Kz!9L-E zSW*|TbaVIyJpVVOxsMx^C(x5kiC~`P*qhXL59>16W*M3p!AKz_ZmFSdM_?aAv8G8d z=eJ0*5xu>~_@$Y@1{^OZD*Ko*LMKLNqr*qT``KE}mGf87d>Z{-fX-*o`&-c4Sg_w3 zYr2kOTd~P+gNa;ezn)f?U^$~{>DcfuaLxkwH3Ooqqn;1QTLzQ8LF+bfOZ7-@G+N0+ zWQu(H(3#Mtk_L z)86C2|3*dm7RF3>bSH)_OG$ICT#OV^yC8KBJ0#VAMl+EcHLJzdNZR1EVt2Oe^oC z%yMp%yw-n%c<>SY-wE8(KNpQvWB>1=mkq&F!TrJGFwP<@vmfpKEhY4!UFFO-aAlX$ zhQt3oyfm8MNF@Ci?z%aa9vXqx&&GPkq5B0`W`DfXW0C&O1Ht%e__!k)`V6Z$hnj8! zn^dlJ@uS}pZI;`Ez9uu4fxiFiMKw$UV9+hb>WZT z`;Blq_HcXn0-V|xY~08_3m4Iz3atAUIQkBByqt6ovVA=^xB=^$5shzV;5HyhMtKE^hDg1F5Ua223!ef-TEZj<+ z&vHk~eE8x7T6{gN7zZ<5MlI7|RPp*C?6M7-s6^+7V^z}HAg-rv1G)XVPos#^Zb9dN z06!bCsZsRVI9j!p(a`NM#RZY|z5}j?gP0MNu@6!35Ex9KuEa1S>8U%>@FZI7!CPl@ zmsCIe;YAS>48Xq+C4#$?k~`2J&9OONZ-RY(%gz2bpx4nXpCB@uLR&K7$?(P zB=0cV)tzW&M$}t5MsxbK;K)_@!{OwgMy>skXgD@=IM=ls!eXR2fW0G-v=3+6F?wpw zxzjoB;Wu>NBgVU)+#~3%DOmN02oueaZxQ|bH8(qtLJvdOm$b*y@`?0T!1eW;(O^5Y z+70}8l-w4d*cU9W;97ZCcytT$3?cmx&Mrdk@!_dh$7JNcot9otZJ*I&?}RHzmt%HX zoX`g^bu49U2-k6xdlKN8XRwNOh2#Fj z!#XEZUu*7Zm`6`Pi|yUWZP7m=Ogh!C&EoN3er}kRv{|s#`r-qKmb~bW9 zh+kai?clccmq6Pg}-3mUwMqf8_L;j`U<#_Bu zk}snri>Toh1JK>W^@HbM|qKyUN58&lg{ML4FHOz4v?dt0t!tzAg@(A8>A)e%Q z?;7u19@Eih8xLDOh%JcUUJai^KaW#i->@6Mqq(EwQQGw(w|9OY-96O{nLCiH0*&;= z1~0)ETu9&i4j*&~ZRv{rZ(uf{h;*0o9mRMigI03%^hwnEuy-rc4MqbiVXH@}?|JI( zjL*sO;n zO*R8{$55tx z(?&Qq6ZXWWuZtp_DIoDRZvOrX`}&OEOn6*a-4D(DJ&Fg~@WPYl@aOji_XJM|PvSQl zg8hgt{z>^oQH<@OpMyaA?_sQud7LFj%={vFJjy#1osYo7O~iihr__UKEpPM#fyZ8~me&`*Z2)ZZI*45#fFdObcs$ulkFzo(la-BimgDCws-eDl~ z9BR6N{Z8Bi)e);`?yVzcyq)siLo?s;2<}F-RfN4+>wiFtizzq7eZalEy~(-1w--6Z z#7(fYjac*Rk^X)_>oxRNSK4t9DSMJ)D^k6Up1-Hu<>+_~+Uy0BoewHCz8;2br=xF4 zvKM)}5qHeuWe$JF-~E9&lox1%#~Z_2!Tr79M0a<{SL{i9j>UhR0b5)~X;)!EZ{W3` zW88W+IN1*gj-<7xP?z)|d6GP2{65}fOn4HbmXRRsPvIz{F2nYI zfGaoBU+ujEsc9s=e=ErTBV`VQMMi?NyS%CN-W-;7U*(W^glSD6S>7H<;eB~x&dISBW@tk|3)%M6f0Evggip@B$QOjPGd}QR~ zhO^aycFg3K@0%DsJOB?($JRH6dqvDUjPzf?wO?@TqwrIDu87?2=}$$IW#ny7tsUs2 zqrv!vu*C^zXawAJ8wk9CBd5W=2a+mFkG%p`c}*`qab$QnF-~_pnPx!75nauIf4?9G z|A0DDv}OQhT!HU;*82wt`71bi6|24z?zoOJhtlf3y*==tV!x-5`gs`qIZF8y*)z=d z{)l$oq_iJ+iTF0`q$)z~elVBr^j^Y<>UntMY2wZAL4OB&vz9#TcH#3x&@`U!#W2C) zw6L17L=7dZfdxKeS%if9z!r*;hVbo=G^O;^LdyM;G#?{YZ`<*)Kyw`%=~cw7UnMx+BYD!5y!MVXp`KNm6G)AUw$MLZDGbi^tTjOB4zR24Y6w5w% z{{d3-qG1qq4tbh+Ye4Sv==?rLBxit|JMmYq(V{tcfVD79E7~#$ZFWcAX0%qi`iVBK zV5$BqqZNnq9Z2tY!TxHIXESH2B7I5^zeR_g$*Z}CH1d9r?q?B!RH6GiO7JMTCqBC| zx`Z^>(?chqr|#Ih~g0*%wRu3qI$8$P0C$F-O ze(jOAn7W(N=h9D-{Vx2<==&LzFJJH^oHT<{7g2K-D@xL$rm)$;yO{Y{@P8&X98W#H zIj0EipY-P~aMr2#$&2CPJCJuNwx-??M(eQJx-h|ZGrVFS^xGB;_U3yKJ$^3n)?~Qs zZ6cMMkXCrlpqUR~qlxs)Uy zSV77xU-eoUa&|)AA=KChP5cgjq8a3IEKi|lhJpLG^mr@q>3Nd77GJuCI%lJeXRwpm z;B+x|U{=tCHhHj{w6_QA#;n_-`{tBTL>W!gY|^L~tKiZW94R6?d;>kb!uLbk_64%9 zqRh{!X*2qf4;qFvyebQxI~0wJ4V#0e-e{y7B{cC$K*S0nh{fbwOB?ya9)2D&?1x7= zfxHulBX3}>*B5W6>{)Qj1XyJJVl} z1~I-E$WQaWPhhuSV7F_Ly$cLKgmMlC_ZPz2=kmRj^=S6)CfbF@(6j4`Z;i@S{(F?APe6`RKPEnLEKMM^XCGNYHLL2&{sr_J@uJl4%j>^IoV@uy-5ntjpzh-YWn%NrRt|d0TH+gyz z1vMdk3%>2J)shJL+@T-g_IcX-7~|HbX#2b9^h@}5Go{ple2q0n(93t=$)2Jo9%t+K zaIF|LLwkQ9$7@6wFN2PS@Yt8M;XU%!qLB(Tn&Ov?YHR_6$p47Vzo*_ElwU^+)syv+ z{=^JzX_>~3dsDMC{Ud$2j`Q`T-@tbZ+T9bz7(yI)3~a>1iF{9Bs|Rf>iSXDF-4uhz zI%--^gf@lVyo`A2_u-Yqw|{2;6-xb)vczrD$v&X&NNnIZ?CTJCTKa0|)l;7sK(%I> z)o9D{Bk|j3)2pM1PX}UG9y0(M53HvyMJ?Y^pX_d7q(d=@a8O4px6vzWXweqVsAWl7 z%F7e573oPVRm!?0s67b;{f_lsAioqQ%3>+2Df4gG#xt<$x8Q#Zzx9#)jghqjmUTSH z`#mxGD15!fXN{?Q1NQJDzU^{&`8LMfuVGiSLG?mpk=->WU03?@P_%hEXj5$YdvJXe zI_S->1%0rT_RNJv7J$~-k*^VZ{F5UaXhl7i(y&XDjcComAnXWAI0arf3t7g|I|rf5 zMAVxbBVRWMDdteZMkL^oTO{Z}&*hNmQzV>(hkKa_VJ`gmIw@825?DfdXn{;U$e~!f z1KUHv@)$-XH{w@s;CmhGJ3;oX%nAICdYhxYAE{{uvosfQ)%YZ4y3XK=z)0p3&*nklu^%1j6|+PKmD;yjVQ`!Q5}8o31utB zz8lXu83gG?13R$h_M}n|>_A5wDO)4l`d$1{7xi=t(r9!d8!?0kmn|r}3H+d$8^xvr zu=4(->p)v%-#SymIq}D8YMX^ud<0&f3JyP{6)PhfQ{N^@+adC@Hol=6jx?tH=6qYT z)rd4nqKy`je>n)tm)#U&b9GqjMp~!uS5c|k(M^xYQh%a96tjFsicPdmA*!WZ|W*(OLHKop@?4`(-4b{pnkxT5_kg*H0c0=OsNZElS{bA@6LG)oDp%XbY|1uwq{sZ*9K*>)Me>{W-eT;hN&~n9f zDtBMnx-Tu1PBnA12hxkFdvJW8$gVZ-r6&YUOS<}}s}*@#tG2d*@fx9j{`!G*O<87P zyZQ9w2k2)py^uw74Wt%RRiNc=Smz)lmYy0BUsp%1{0XaDOHM@^wdis)*sO~9yMp$0 zB3B#wbSrXif`7&99&-jiMf+l&NIYuqNXdQiFo#e}d)no}fpyd`n`njI@f3RGS8{kH zo)x7vS~#4kgW?q?e;|G@l^-cjMP3@}(Oh4qiyD z--FRlSS~{f51CujL+vT2ns!$sZw0-!Hfr14WAOvBm4sXu)Q_J7ABNXk#!e{To>BbXfK%5Vudnvck|#%3Xz({*#>V zV8vg8*Ddt+I=&iLucyu=8qoZ#=6LjiD~(;cqW`@(+Jd8E*Fz{@@kTGKRAcPLf@E@^eft{ znb8F>*K)p^A4&5QlGK~BSzYN7x9mZEYOQ=hYs%;ZA`}a@rtUbS#u{qc5!I#sR&=jY ztOPNCG4fQAVmq3uWx17>ZN(}yo8Y0%4)mPH8iVoS2hmTOOKKDOI{EmY(4xk^t6~4I z(C$CcjIIM#VNt6%rdU1;S9C(NvgN*PwL?!Oln{r1Hq$R@X0aqmIY+pAf)P(+>d-w1 zJtMtzqHXagvRsGezoh>(7xE$7Utwnpu)y_5oDbuasd73aanHyGx=@PdH#HvH8~)vo zUg=5CcBTc5Xm=u-hnk0-Y5sKueJpLS<+lpdHh>6?<+`HPj_9ESWp|*YUX;_FV~wNh zX}pw^)^0<~o6*ENG$DpqMQQ6I3o$Pyj%mqHzORhBE8qutd3`iH*qXj?idHmYSc|{5 z8QW@l!1`NumLi4b`pb~2jIC09hFC-O*G6+V(q$c*@F=M@U!k^yeEMqUqcJ~4l(NT~ zsF&AKmu7r4dz_~frE5cr4+QB$h-`H=`7m1C7`Zm0qp#@U4`JH3;Gnl7Bz;K_ET!e! zv7rnaZ5p+*9h&bBb0})xGm=`ZEvNP3mKIo@t}94mTOxkUAh||0ypn-mMWibsS}j%# zq}(y=KSPeSk#@hP&lV%ix7gbnN~+$~a;0vD3?0F*W;Zl@bSQQ^n5gM^*lQTa6ww5c z-ekcVInO6P_=IuzTOfQUHYUpzlgn@MR%QCj=`tVHBg{8PzP8u_e@IK6(s~Lx<+n@d zT`lvpO*|o{u=9%MT1D2~fu*de&n~oTv{z4!iiZ_dzk-#&4-b5bc303oc|>^%%_T@H zZCN&^Hd#_jWZ09E4gjHpi4OM+flFVR<>7yM)LIBI*`Afay9?4De_)Bqn4JEsu6W-##=LC zdtwcHA&urD+mgE;d#gqw*?{7ndU{{l)7+rsl@)3{nu)loI+9H@o0`E?9*z8V@>Lna zeK|TPi}a!1%0w(FpIpQl*?ci;#Vh5sOTKVBd21;}b3i$?+LB&TTlt#@tfL=NHU}fM z*xBdU#ix7~@h(AIKhU4+X{%~iZeds6UVmWKHtNrgl%&zfp7d`^zRftJ{hnA|Yoyyw zJLGS_$I3o~c|K=Lk(y?1#AD*-vdG?qp{8t0@?y4{M|CKMZcC{xu{HHVoEFsXvVCrc zMJmm0X&hgLzShz!t5_>y%X3EQr6Vz$>~|mf_F!7vhf0N|L|%3KQ(tiwNi0a6UtI# zC5#Aj@&@t+t*KSmQ|}Z7D38(M2uW!gPigV)1r) z(pR7npL7}O-H28<@Du*zy)+vx)T<6LM+;I*cFkRDMp`kQJZFnY=aNk`TK z1K!iTaIfe{4;ZW)Thga2G)vhlz{vudchQ4&dIF-Ymg)fyW>yd2gO|?v3QZo(eUm@JKg>-2| zXBDls&BId29cN$tCch=V6aI|>)L)XcQPfsN8;y`t zRue?ln4=c;h$K)?i*I?kC_ib?B45=gi;=#X@{{g#_lI$ruFFb#MF5+@lCY(oLoCvW zr)8zeFMc=HmM4+zi=$;b#Vplo`5DuU?zY;-SH8(`DSgO(^OP^k_IH&lwidUETaCkn z5!sk&LdSTBn3}|ziYz39^@@(ldK2W896UtH5m}@(8=@6iq~>t8P@3k5RF+cdtZYz- zR!hYdW{l|*`MGLpk!7h}l2X`d5=kkEZEiy~TI(~k zrWh$rMw3Jm$-Z?BRM<5OQXE)=+_EcSRj86~q+Kn|o5;GRaPv{G`!1J)N9g%Fr}ZduG(*7W+7f^ zlRXK^`igOF%j{7()ly4kzE?JBC7bPu>xES7b;GZ6s5NH0vNri~#gJ;fkSxorrZ%fj znpHj0hv8FpAkU>96vN9h#qDA|#am{h$|F{h{5HB)jmGY>74@6x#r2>hGmkB+kY=?u zR+nCcS@Vx-vzSG8t$vdyw75*|mu940VP2Y6sY-8t!o0hVsdOP!3}Kisom=c_OwfQv z)Z^+q^}dy_ev-zO-gwaQjIg7hYIl4lOS4|o(y_0~R6oeVRD+>WOIe8N+?8RBW&LMp zm5&xKWdn+9lwYMOhrT+lc33Z~R#~p~rSziI`3U)98evZitp1djQEy8Qm8)Kog~)q} zr}VX$Nu?QANE2pp%571+G$eZw5+#vzqLOvYK5B_^j-g9Or6F0mYBbhT4_GhA`pvVr zel@S8vW=sx9cC%!4~$o2tJ+e8p;3ZH@UlQf7P4}UYYIA-4o%C_jrF1})sy;|HCskbcd6}F`_ z>vQFkp7oL5tQ^CJT@jG()J|EA7{j&Lyo6G!#j+)f#N@%udhJY9bX2afgnC@KHT!gZ z>>>b@)3l(HY&0Rs)ne&Swl7(=R2yaGl1ja;eMxCiidaGC)G9-gB2$x1_O9~uQEAes z^_SD5(~R_Etv5YeDwQZr+DJl@T7J`?*?^U;zE*5$9ObNC(i=hy)7lpsso$&}mcl%W zdd$8;ob|r?-teN*RjxFlUQvrAjg{y8lH@htVluk3YLA_hylTBlcCB{uTFHg9(x*Nu zQAZ`MtkCS-N|dH0uk69T*(is!?hs_mAdb;bmZ7$&-^}J@GggD_SFCICihQ#3cn%LL z(-5iLj!mou>I3P^;ZS-l^qKX)vn|t{mS&aKzCwQ0QJ8nl!21#IgkR=F* zu7_2!wa7e?`coF7wJ@SReO0z=hssclU^XTnDKD=hs#&-)R#X`-*0j+E zmex|!jrL3urFS;2wYAI2HKsEARt}TKWVKqXCM{Kt^|nf|)UI7xo5!#+tkqVBO5gos zGHa=iD_=UZ8VmNMI+emcPB!gZE-P86)W>SErFvCA?b#8_<=UhYjg8Ir48^7=D_boz zybF1uBB^(j#>*GYFw|X9xKb0>DG2e zISbO*IkizAvp(0mg|?_JtKG?FwJDFY74<@)U8W!9Q7QU5-g5Pu3}y?v%WE~5)~&UM z2g~Pjt7d(i9Io|lZH#2CvJ&0Wbhx`7UCAoXv}vWNJ+@^>O*<~N)=F6`fjX{hVSN^6~BYQso87+Uk zXn$Pc*sx|z&MNmh|J%*=6q+q zqjGoW&dO!8b8^#yhj=Z_Xl@bGW1}9Ata@y#je1aYKeqaE^ODYKtrU7-PUjwsw)>I# zJdRsF{!xT;=ke=H&izQ+Z`ZPtt$xVWFUqf_<=dZ!>y_V1w^XWO5+zxF{=t-*`?6HJ z%1E{c{%y(Ua@6C&1j%etD2LVa^ZF-o+>1(8D;|ted66V)eLu=jKlkOuFyEyPYd5@4 z=L381>NigOAOGyg#j}et2W1b+9+JHkvkzxK&Hgi+&OVaOupE`^ojWtvhvi+l zdvf>Y-pkEl{VuPIdpCDdzI*;;UdeZI{HYQWy`EpkzbvlH zw+`0iTk#T`Bl))EA3l#{`>NpiXgNLFdOnyMOygBC(}Pl8pY(mSUcx^-F5_3mKVuK% zSHZ3SrQCu)h{rPqhnKMCwVNEfgyqFtUcHztJ*0Cnx6kW4pPRhqv;QPZ56kezpP+~-F7Drs(XzK$cKIipv{&yDh^_PL}~ z{neZsO^%OtrFUhh4wdZcc`%Yy$CU3OzOwuCD91`uOXfz>%#Dsq5=pGGN0XzD@+I$i z>??=LQC&LfWPS+Esa(k^iFHo7wPnYZR(P~?wmd&7^E{U4?K*B{YN?-&tKR*0I7nKv5|mEdp*~knIEGSMOHp7RwM>j=sohz} zTgEQN3%gs9*h{%&M|Iv6@ym+uYxGX@n%0Zj-Js`Y{>MHO@)yDg^I(Guv!C&OB%6f^ zve~n8>FhoHM!^7Q!UbpMs$haSa6;$2e%o^$^S{fV2p8O%KZ$Sq;3W9qjr>}C!5SDr ztRN;hlGpoL|o%a6Z@!ElgKdVP-@7N)M65Gglbfo zmAlX=d>RWrz}fR7jJe!S9;H7wl1yoIRQeSA2-iY~NnqvLd2xy)v~%*kmQ&c(QRP<( z!?WbypCdY_vaN?ChiO>-AzX?9#05X+0rT$#CQuIx+0vB7CJyhv?ss_-wLpxtdnBWp zb*{h(4|%uyhsE=Wqf?_xwv{d}|Gc86(J75@YkZoEn@Rsa^O=}aL|_b%&i2k(RB%tO z7ys5dhvmI+z`MEa#0T5i-;vvv>qH!|o#^1E{0^3{6A#=111KV#nQsgB*AN%1WBGdi zNM2&wB4`5>3Qt!z;`LAE(7a&MaS5P73Q;b@h(14bnsQg29Lu8Pr?NjD@@@5Fc%?+AH)n=>*Ln8 z=a%YIeQfPm!TMG6wB(^=1WI!eHrgq)U7jCgW?CnxXEj| z%rjfOZf6}ss2?Upx>rf!2&?A+Ge`%w&_SYR999Yg|EaKN5K0H^S(@85#|lcTYL@P8sPzyz3Keg0MU*0RAin4<}sB){&t8>flO73|B`CFpafE2V#P0Fv7Bk6%+}4&+BSS`6@cF z_@ILIp(A(2XS7!T>!VRaVPC!O#u&yBvS5oLWrboCXG^jurBMnk&63PdiF4$AE%G!R z7^YNu!B46zVO}YPu5+c(Yirz8{8I1~!! zg?!o)N+p5$X~U}!Dh@Cy9X}Y39YaX}t~WK8;5b71w|X55=&T{X(6`nj@)L6zrFHY~ z@_&K_n#K={KNla6cr-CD(IlN0%lN;Zy@_5bqc zsK7AY86z$YfIGL>ptY2rXd4UNae*#<1{|ov0t>LK9zlP<^{BT~{+cH?o zuMOB&G|&e0TTJjWTP;ERHK1Rk1ml9~Y)^w9#0S%e1+*pfYkv?tAWl$x@O>~i!vFVd zJ1)>H!lkgoC7@YbV$#IHMOKe)u0!NwMaNJ3)?56h8_*c_48+Ls;cV=OQ_+A_anGfc(|vPWYNvn?%k z=I87oJ2&eVN)+9jWeTeW52&&6`O#>_kYQNf9YXcEq>Wam}IFji^-w_*sj zMlCT^s6=^mhc%(tQYdb4agcd!F@@UX&dYP-z?^Sp6npCFhL$j1yG)FImCk zm~pDosC|~k+Ha#h8v{6b9XBWzw6x~kO&8Vz$>hcw+E%Y=Z8b*7(vIiE!)vrzsg-}^ImpV98j=9F^MoEoLe5p5=!SR z)=E+=FDo`yDe!_YDz4Dde40i5Hv1_{u8ht+z*1NihHOi9s6NS4KyxK29G97|bbeN- z5-%Ami9v*tLe2tSjoqvy9WA6Oly0ei%?73ul`ah^{Vy3oEmI5J+`h_CT8CNb%}Hqy zgXvr?bsE>&#uWvf>a62Q@qqDLB}_Xv`u5~S!e_t&oBYjwd;Uh{y4dxx6TtKPjW_4g2oL({1fc!g)=&%k%NsJbbLNBfg%Zw40K#kfyM}$ThMa;uC<$gw9$mk zE=cqG6y_S-5j(D>^-qBxge-mB5ks?%m}SZy_0epE>|Ea5jumjv0aEL%e7}~$vUzw} zuS(c`9BXq~${`%+oWr%yVYpXrZL35Z&B$LWiqKMMlRQ61ouS`qEU=ZzsiX$sq`(2< z6V+_YwL1$KYZZ9Fa%)*gYjsF2lTfm_+8>A{Q)+9S)(+=Zg0Y%wsmf9sN#`O3NoKrh z(iHHn)XHC&ZE&qn6r*-Nz_oz0V1b@~EmsA_18+s60wMUgSo>HzFx@`lgX_V!u&(6| zaKs7xf%l25J8-r=-#z$^h|TtAk@Kf$c^X@HfdB5q7ORkRQ43DTdXeZDqjC3ikE|G z&HGIUx7S4D``s~KK}m*kEroN<3d+M9+NZHC)T@?K<^`5er||tfTs4S4IM7HyxK}Ko zE$EFosFvBH8VjUohxed&MqtCjzL#=-TLTgx8pBTU-I5NX@y!?i86 z+Z>hcx%j|rSe7cp8qUQWHfj+j9NL8hZ3~4e%{atZL3wpX$knwuQyFbrS;mZ#)^VGp7N3~iTdGR-jiI#uITtuj zE*)8P@N+hB8rz)@B&UvB?f;$;gg=c^blp|+0UyBtwTuZ)=c`e{8TjzGLGot);^D1b zvB4&`H~Z~kiWD{zF?7J+x97KobpME!Z*-~hz}7IoCo7F{>B z>qv?LO&{tH`^XOGN0xahRx67)TX!>SLXAb!!i!izGjQf-m-F|G^2&#DJx}9v7nN(g zuGzd2jvH@?MZ_G2V&QffST|l#6|^3^SVN)*}y|NZ{=UYIn`~rFO8yp z;Qy*c*^|*N|L$n>$S;MzGYTn)K*)XnBeu;M*SvWtbQk1sf3&kuB_XXxL z)H?K8=~lAPs&s~QNo}$!hf24R(9an_sdP?h?7ZbFuzSFbh220UJ1M zZ)Qv0eIrQMIq}5lEdLT6Jw3`Zk|T;KdPEG+owaWy0^r}1P>s;cv8Ao zTkJERzfO_unw`qaDJ~Wk91etrOZnP0IrE=F<5&>w{(*w!_FA=jO= z`+&ZWI75D0{(3nx{la!dv?pYX2gEln@4#qlP=x8F!KJ(M4dU)0q1~<$*qq>CaA~}t zc|l3*B)*hZ>T04eE>19%TifK>H6|Dvd3m+AFeZ>Dq>CrWZyYKAFP+&L%?`-(iywqz zMF@%$#1nR%L2EaM;AR}{T7-=m6h#;lObO55b?1U(0k>9fDUR5EmZ30$(CowRAIA=E zEllcT9)EX!aK{XhN>j;C)}f!aZOgo-+b-bUkfG9d$GouM@*7fBzGITYmZ43h?v7#? zTi9`7%%qd_hSo}Q6v{W`IR;Q$)ovRRNMlM_knWdxcaH~D((c$Ug#u0{6!=xcqcL3TMr8j0!jBbdR-?nc#sVwSHddpiL zol_dCRYz6h;HWn9{iSd~DH4z6k1vFBOQG?OU=fghxGw{J5G#s*>nH!`qD z;i)LC;|l97JL7upzgo-k3!mNhDmm=-oedZ}?0!_JvFJcYZO>u7a9oxo+$c@uuC=yR zu3^^B6}ETBJ&C}o(i>9Et1E{~<$V9{=y$a#pW_abNHKufw(Q(^K&f_T0Oi)PN`B6( zYhMz(daY#3Z?&lmlhKWmltXg`N>#`yx$P>8yBp&?uvv%$D*0P5#{pu3Zu}I(pB{Ph z)1$r9`CG0#LA&^%M}+#3Aly)|E&2VPQPeN&EAFq2(El-iO{u!N`44)Z;Qt?@rU%$p z9Afu$*|ihLism=eR{J=+vXQQQjxm7jTx{UR3FZlf49%_UsBj~1D}O88*t~+>$!DIp zfK{=DnBkIL_|^#H$z2Sf9Qx|KxJ4Wwk1s@O6r#9aTMpMMwSaQ*fX+A>7LfBv*x{S# z=+{v`$@VxBD3@fHrchM|H-|8lnu31>SIoRT@iQC{vP3 zW<#SS)e&1Oz0T=KA+K#|sd`k4ZEI=e7PeeY8xts{tIzR=tJ%de^8a=}hGyn13Qz=~ zxO^^uapy+sr-NqW0Qqyx6e^ZKE%NO)Ryd76zO$oUBaW!^x<(ApJzCC<_(Oa$mp`bf z=1*}n-=JvY;|TvBvt5hL$=X=fI6;hHp3gX70cg^A zK^}5oRYa4(jzNaG2Z zLA4fG#^QWq1>=KD!KhvNQ!2$UV|jJC#`cDMNv;wd6D)}2RZCQ|aPGLk{JUD{#{D|4 z89`~r@qwk{Ngp(1d?`c=>zDGI&rys1r9tV|-M#F2y2{{20Xk>=V8@)_*Ky@{``RfihZjSPL%ohVv}?=u9XhpdC95_& zXCA0hiK8Pr>e3kQ3+3rtV?vw?&=+)N3y?H?A6NLi#Nm;(I zrKONB{1m*bjk$$c9WUc2537B{v0bav+?_+Vj?4S2B&C|dIn|@N2s@&q^5QlM(J}dL z9W}2$kXkg_H>?{AJPta=Ps-=6{1tdWUff1ITH0|N56x%KjRIU`AXJ;L7Y|4en*Wn_ z#0}D%op+3&=-⋘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